我编写了自己的clang工具https://clang.llvm.org/docs/LibASTMatchersTutorial.html
该工具的目的是基于特定的源文件生成图表。直到现在,作为一个原型,我使用了一些没有任何依赖关系的基本cpp代码。然而,目标项目很大,并且使用CMake,导致在我运行该工具时包含错误(如预期(。
我发现这个问题也有类似的问题:clang工具:include路径,但由于项目的规模,我认为这样一个接一个地提供include路径是不可行的。
是否有可能以某种方式重用CMake结构来输入包含路径,或者递归地在根文件夹中查找标头?
CMAKE_EXPORT_COMPILE_COMMANDS=ON
来创建compile_commands.json文件。要将其解析为clang工具,需要使用命令行参数-p <BUILD_PATH>
,其中<BUILD_PATH>
是compile_commands.json文件的路径。作为提示:不要为工具提供双短划线--
作为命令行选项,因为这样工具就不会在compile_commands.json中使用编译数据库,而是在--
之后为编译器提供额外的参数。
一位同事向我解释说,配置CMake并将compile_commands.json解析到工具中是可行的。刚才我能够做到这一点,我有compile_commands.json,但我必须进一步研究如何解析它。