带C的多个条件编译宏

dav*_*wad 0 c gcc makefile conditional-compilation compiler-flags

我正在尝试设置一个makefile来编译一个相当迟缓的程序的多个段.为了做到这一点,我希望Makefile能够一次传递MULTIPLE调试标志所以我可以一起测试多个不同的函数集.

所以在我的Makefile中:

debug:
    gcc -Wall -O -o my_malloc main.c -D experimental leak  <-- SECOND FLAG
    ./my_malloc 
Run Code Online (Sandbox Code Playgroud)

在我的C代码中我想做:

    #ifdef experimental
        printf("MALLOC PROGRAM IN DEBUGGING MODE\n");
    #endif
    //executing both conditionals at once in one line. 
    #ifdef leak
    puts("TESTING LEAK DETECTION");
    #endif
Run Code Online (Sandbox Code Playgroud)

Ter*_*ein 5

-D标志的语法是从你上面写的什么有点不同.如果要使用多个定义,请使用两个不同的标志:

gcc -Wall -Dexperimental -Dleak -O -o my_malloc main.c
Run Code Online (Sandbox Code Playgroud)