Clang AST 转储不显示#defines
Clang AST dump doesn't show #defines
我正在转储某些 header 的 AST,如下所示:
clang -cc1 -ast-dump -fblocks header.h
但是,header 上的任何 #define
都没有显示在转储中。有没有办法添加它们?
没错,#defines 是由预处理器处理的,而不是编译器。所以你需要一个预处理器解析器阶段。我知道两个:
Boost Wave 可以为你预处理输入,and/or 给你钩子来触发宏定义或使用。
Clang 工具 pp-trace 使用 Clang 库,可以对许多预处理器事件进行回调,包括宏定义。
我正在转储某些 header 的 AST,如下所示:
clang -cc1 -ast-dump -fblocks header.h
但是,header 上的任何 #define
都没有显示在转储中。有没有办法添加它们?
没错,#defines 是由预处理器处理的,而不是编译器。所以你需要一个预处理器解析器阶段。我知道两个:
Boost Wave 可以为你预处理输入,and/or 给你钩子来触发宏定义或使用。
Clang 工具 pp-trace 使用 Clang 库,可以对许多预处理器事件进行回调,包括宏定义。