为libclang设置全局-D宏编译器标志

时间:2016-05-31 05:29:41

标签: c++ c macros clang libclang

我正在尝试为代码生成突变体(使用基于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宏做类似的事情。

1 个答案:

答案 0 :(得分:1)

创建CXTranslationUnit时,只需传递它们即可。 relevant function clang_createTranslationUnit的参数类似于argvargc