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 次 |
| 最近记录: |