3

我正在尝试为代码(使用基于 AST 的突变生成器)生成突变,以便编译使用 -D 宏。我可以使用 clang 使用此命令生成 AST 转储

clang -Xclang -ast-dump -fsyntax-only -DFLAG=0 -DOTHER_FLAG file.c

但是,突变生成器工具 (Milu) 使用 libclang 来解析 c 代码并生成 AST。如果没有这些宏,libclang 无法正确解析代码,也无法在代码中添加#defines。我想全局设置这些 -D 宏。

例如,我可以设置一个由 libclang 读取的环境变量 C_INCLUDE_PATH。我想知道我是否可以为 -D 宏做类似的事情。

4

1 回答 1

2

只需在创建您的CXTranslationUnit. 相关函数clang_createTranslationUnit采用类似于argv和的参数argc

于 2016-05-31T12:15:14.277 回答