将预处理器定义传递给clang ++

时间:2017-06-27 19:32:21

标签: clang++ preprocessor-directive

鉴于

void foo() {
    int i = 0;
    #ifdef MACRO_A
         // custom behaviour
    #endif
    // program code
}

编译时是否可以将#define MACRO_A传递给clang ++以允许'自定义行为'语句生效?我找不到文档,表明这在clang ++中是可行的,但在其他编译器中是可能的(g ++)。

1 个答案:

答案 0 :(得分:1)

由于pevasquez的帮助,该命令是

clang++ -D MACRO_A main.cpp -o main

功能

void foo() {
    int i = 0;
    #ifdef MACRO_A
         // custom behaviour
    #endif
    // program code
}

将使用包含在预处理程序指令部分中的代码进行编译。

这将是我的makefile的补充,以创建调试友好的make-chain和生产版本。