我正在倾销像这样的一些标题的AST:
clang -cc1 -ast-dump -fblocks header.h
但是,标头上的任何#define
都没有显示在转储上。有没有办法添加它们?
答案 0 :(得分:2)
确实如此,#define由预处理器而不是编译器处理。所以你需要一个预处理器解析器阶段。我知道两个:
Boost Wave可以为您预处理输入,和/或为您提供挂钩以触发宏定义或使用。
Clang工具pp-trace使用一个Clang库,可以对许多预处理器事件进行回调,包括宏定义。