在命令行

时间:2015-04-22 11:05:28

标签: c macros makefile

嗨我有一些代码并使用make file编译。让我看到你遇到麻烦的代码安静。

#if (TEST_MACRO == 1)
printf("Use test configuration");
//some code
#else
printf("Use actual configuration");
//some code
#endif

在make文件中使用

添加了该宏
CFLAGS = -DTEST_MACRO 

现在我使用

编译程序
make mytarget TEST_MACRO=0

然后它也将执行测试配置代码。

所以我的问题是makefile中的宏的默认值是 1 ? 如果是,那么如何使其 0

我试过像

这样的东西
CFLAGS = -DTEST_MACRO=0

但是在这种情况下,即使我传递值 1 ,它总是会执行实际配置。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

使用ifdef代替 - 更容易使用。

#ifdef TEST_MACRO
....
#else
...
#endif

然后使用-DTEST_MACRO进行编译以添加。要编译而不要使用-DTEST_MACRO

相关问题