【问题标题】:Can clang produce an AST dump and a binary in the same runclang 能否在同一运行中生成 AST 转储和二进制文件
【发布时间】:2015-11-10 23:58:13
【问题描述】:
如果我尝试对项目的 AST 进行一些离线处理,LLVM 有什么方法可以在构建期间生成的目标文件旁边生成 AST 文件?就目前而言,似乎必须进行第二次运行才能获得 AST,鉴于 AST 将作为二进制构建的一部分生成,这似乎效率低下。
具体来说,我希望 xcodebuild 能够做到这一点,但任何指针都可能会有所帮助。
【问题讨论】:
标签:
xcode
clang
llvm
abstract-syntax-tree
llvm-clang
【解决方案1】:
如果不改变前端的工作方式,这是不可能的。就像你不能同时生成目标文件和可执行文件一样,你也不能同时生成 AST 转储和目标文件。
当您传递 -c 或 -E 或 -ast-dump 之类的命令时,它会在特定点切断编译管道。
【解决方案2】:
不,你不能。 Clang驱动先解析命令行,然后生成相应的动作。