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

时间:2014-03-13 16:45:54

标签: c gcc makefile

在C文件file.c中我有

#define STUFF

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

gcc有-D选项。我能做到

 gcc -D STUFF file.c -o output

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

任何提示?

2 个答案:

答案 0 :(得分:6)

#define STUFF

#ifdef REMOVE_STUFF
#undef STUFF
#endif

然后使用gcc -DREMOVE_STUFF ...

进行编译

答案 1 :(得分:2)

您需要更改file.c,如果不更改源文件,则无法执行此操作。 例如做到:

#ifdef ENABLE_STUFF
#define STUFF
#endif

让你的makefile添加-DENABLE_STUFF标志