clang 能否在同一个 运行 中生成 AST 转储和二进制文件

Can clang produce an AST dump and a binary in the same run

如果我尝试对项目的 AST 进行一些离线处理,LLVM 是否有任何方法可以在构建过程中生成目标文件的同时生成 AST 文件?就目前而言,似乎必须有第二个 运行 获取 AST,鉴于 AST 将作为二进制构建的一部分生成,这似乎效率低下。

具体来说,我希望让 xcodebuild 来执行此操作,但任何指示都可能有所帮助。

如果不改变前端的工作方式,这是不可能的。就像你不能同时生成目标文件和可执行文件一样,你不能同时生成 AST 转储和目标文件。

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

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