我通常使用以下选项将宏定义从“make command line”传递到“makefile”:
-D名称=值。该定义可在 makefile 中访问。
我还使用类似的编译器选项将宏定义从“makefile”传递到“源代码”:
-Dname=value(许多编译器都支持)。这个定义可以在源代码中访问。
我现在需要的是允许我的 makefile 的用户能够立即将任意宏定义从“make.exe 命令行”传递到“源代码”,而无需更改 makefile 中的任何内容。
所以用户可以输入:
make -f mymakefile.mk -SOMEOPTION var=5
然后直接在 main.c 代码中可以看到 var :
int main()
{
int i = var;
}
Call make
这样命令:
make CFLAGS=-Dvar=42
并且一定要使用$(CFLAGS)
在 Makefile 中的编译命令中。正如 @jørgensen 提到的,将变量赋值放在make
命令将覆盖CFLAGS
值已在 Makefile 中定义。
或者你可以设置-Dvar=42
在另一个变量中CFLAGS
然后在中重用这个变量CFLAGS
以避免完全覆盖CFLAGS
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)