首页 > 解决方案 > LibTooling:从编译器命令行动态创建编译数据库

问题描述

我想制作一个 LibTooling 工具,它采用与 clang 完全相同的编译字符串。例如 clang a.c -O3 b.c -I/myinclude -DMY_DEFINE c.c. 应该替换为my-tool a.c -O3 b.c -I/myinclude -DMY_DEFINE c.c

clang 文档官方建议在基于 LibTooling 的工具中解析参数的方法是CommonOptionsParser。它需要不同格式的命令行字符串,默认情况下依赖于 compile_commands.json 文件。如果我将所有源文件放在前面,然后将所有其他文件放在后面,我可以模拟所需的行为,如下所示--my-tool a.c b.c c.c -- -O3 -I/myinclude -DMY_DEFINE是否可以在不使用 llvm/clang API 对参数字符串进行黑客攻击的情况下实现这一点?

标签: clangllvmlibtooling

解决方案


推荐阅读