clang可以在同一次运行中生成AST转储和二进制文件

时间:2015-11-10 23:58:13

标签: xcode clang llvm abstract-syntax-tree llvm-clang

如果我试图对项目的AST进行一些离线处理,那么LLVM是否有任何方法可以在构建期间生成AST文件以及它生成的目标文件?就目前而言,似乎必须进行第二次运行以获得AST,鉴于AST将作为二进制构建的一部分生成,这似乎效率低下。

特别是我希望得到xcodebuild来做到这一点,但任何指针都可能有所帮助。

2 个答案:

答案 0 :(得分:1)

如果不改变前端的工作方式,这是不可能的。同样,您无法同时生成目标文件和可执行文件,因此无法同时生成AST转储和目标文件。

当您传递-c-E-ast-dump等命令时,它会在特定点关闭编译管道。

答案 1 :(得分:0)

不,你不能。 Clang 驱动程序首先解析命令行,然后生成相应的动作。