如何为OpenBSD Make生成compile_commands.json文件
OpenBSD源码生成compile_commands.json实操方案
- OpenBSD源码仅支持原生
make编译,无法用gmake替代 - 常用的compiledb工具依赖
make -w参数,OpenBSD原生make不支持该参数,无法直接使用compiledb生成命令集
方案一:使用bear工具生成(推荐)
bear是通用的编译命令拦截工具,无需依赖make的特定参数,适配OpenBSD原生make。
- 先安装bear:
pkg_add bear - 进入OpenBSD源码根目录,用bear包裹make命令执行即可生成对应文件:
如果需要完整编译同时生成命令:bear -- make build
如果仅需生成命令不需要实际编译,使用make的dry run参数即可:bear -- make -n build
生成的compile_commands.json会直接保存在当前执行命令的目录下。
方案二:手动解析编译日志(无额外依赖)
如果不想安装第三方工具,可直接导出完整编译日志后自行解析:
- 执行make时将所有输出重定向到日志文件:
make build > build_log.txt 2>&1 - 从日志中提取所有
cc、c++开头的编译指令,按compile_commands.json的标准格式拼接即可。
验证效果
将生成的compile_commands.json放在源码根目录,重启vim的clangd服务即可生效,全源码的C/C++自动补全、跳转功能均可正常使用。
内容的提问来源于stack exchange,提问作者RHL120
相关产品推荐
相关产品推荐

