嗨我有一些代码并使用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 ,它总是会执行实际配置。
任何人都可以帮助我吗?
答案 0 :(得分:2)
使用ifdef
代替 - 更容易使用。
即
#ifdef TEST_MACRO
....
#else
...
#endif
然后使用-DTEST_MACRO
进行编译以添加。要编译而不要使用-DTEST_MACRO