使用Makefiles定义预定义的预处理器变量

erk*_*kan 2 c gcc makefile

在C文件file.c我有

#define STUFF
Run Code Online (Sandbox Code Playgroud)

我想要一个Makefile,以便我可以阻止在file.c中定义STUFF.我想仅使用Makefile来控制编译(我不想直接在.c文件中注释掉这一行).

gcc有-D选项.我可以

 gcc -D STUFF file.c -o output
Run Code Online (Sandbox Code Playgroud)

用于定义STUFF; 但我不能Undefine STUFF调用gcc或使用Makefile(当然在Makefile中调用gcc).

任何提示?

pmg*_*pmg 6

#define STUFF

#ifdef REMOVE_STUFF
#undef STUFF
#endif
Run Code Online (Sandbox Code Playgroud)

然后编译 gcc -DREMOVE_STUFF ...