【问题标题】:set -D macro compiler flag globally for libclang为 libclang 全局设置 -D 宏编译器标志
【发布时间】:2016-05-31 05:29:41
【问题描述】:

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

【问题讨论】:

  • 您需要以某种方式将它们传递给您的编译器实例。 “定义”没有环境变量,只有库和包含位置。
  • 我想知道是否有用于 clang 的全局配置文件以及用于 gcc 的 configure.ac

标签: c++ c macros clang libclang


【解决方案1】:

在创建CXTranslationUnit 时传递它们。 relevant function clang_createTranslationUnit 接受类似于argvargc 的参数。

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    相关资源
    最近更新 更多