1.生成1.1 生成系统工程师需要的1.1.1 vim build.sh1.1.2.在getopts参数列表中增加标志位找到脚本中的while getopts UCKABfpoumv:d:V:J:M arg这一行在双引号内的最后面加上g代表 generate你也可以换成别的字母。修改后变成while getopts UCKABfpoumv:d:V:J:Mg argBUILD_AB_IMAGEget_build_var BOARD_USES_AB_IMAGE BUILD_VARIANTget_build_var TARGET_BUILD_VARIANT BUILD_GKIget_build_var BOARD_BUILD_GKI # 1. 在参数列表末尾加上了 g while getopts UCKABfpoumv:d:V:J:Mg arg do1.1.3.在case语句中捕获这个标志在case $arg in内部照猫画虎添加一个g)的分支用来把一个标志变量比如BUILD_COMPDB设为true。# 2. 新增 g 参数的捕获逻辑 g) echo will generate compile_commands.json BUILD_COMPDBtrue ;; # ... (保留你原有的其他参数逻辑) ... esac done1.1.4.在循环外部执行真正的编译命令在done结束循环之后通过判断这个标志变量来决定是否执行SOONG_GEN_COMPDB1 m nothing# 3. 在参数解析完毕后根据标志位执行命令 if [ $BUILD_COMPDB true ]; then echo Generating compile_commands.json... SOONG_GEN_COMPDB1 m nothing # 可选如果只想生成数据库而不想继续后面的编译可以在这里加一句 exit 0 # exit 0 fi1.2 生成kernel相关的1.2.1 编辑编译脚本在适当位置插入# 1. 先切換進入內核原始碼目錄 cd kernel-6.1/ # 2. 執行內核專屬的生成腳本 ./scripts/clang-tools/gen_compile_commands.py2.如何让vscode 看到2.1.clangd安装clangd插件在compile_commands.json所在的根文件打开即可