我正在这样转储一些头文件的AST:
clang -cc1 -ast-dump -fblocks header.h
然而,头文件上的任何
#define
都不会显示在转储中。有没有办法添加它们?我正在这样转储一些头文件的AST:
clang -cc1 -ast-dump -fblocks header.h
#define
都不会显示在转储中。有没有办法添加它们?没错,#defines是由预处理器处理的,而不是编译器。因此,您需要一个预处理器解析器阶段。我知道两个:
Boost Wave可以为您预处理输入,并/或为宏定义或使用触发回调提供钩子。
Clang工具pp-trace使用Clang库,可以在许多预处理器事件(包括宏定义)上进行回调。