Duc*_*een 23 c++ makefile compilation clang
假设我们的项目有make
文件(不是cmake/premake/ninja等),它们适用于gcc和clang.我们希望从它们生成JSON编译数据库以将其提供给clang-modernize
工具.怎么办这样的事情?(在clang基础设施中是否有任何解析器或某些使用类似make CC='cc_args.py gcc' CXX='cc_args.py g++'
或其他工具的脚本)?
Tan*_*z87 17
Make 具有将编译器命令行发送到其标准输出的通常不受欢迎的功能,但在这种情况下,您可以将它与 shell(和jq)管道一起使用。使用GNU Make on Bash:
make --always-make --dry-run \
| grep -wE 'gcc|g\+\+' \
| grep -w '\-c' \
| jq -nR '[inputs|{directory:".", command:., file: match(" [^ ]+$").string[1:]}]' \
> compile_commands.json
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,cmd.exe
语法类似:
^
代替\
换行"
仅使用-delimited 字符串"""
转义 a"
"
^^
转义 a^
"
但是,这不能处理 makefile 使用-C
参数在子目录中递归调用自身(或其他 makefile)的情况。
小智 6
也许有人和我有同样的情况。我有一个 macOS,而Bear正在生成一个空compile_commands.json
文件。他们在自述文件中承认了这个问题,并建议使用scan-build作为解决方法。不幸的是,我仍然得到一个空文件。我发现的两个替代解决方案是:
归档时间: |
|
查看次数: |
8516 次 |
最近记录: |