我想在make命令行中为CC_FLAGS定义值。
make - f makefile CC_FLAGS=-DVERSION='\"1.2.3\"'
可以使用,但如果要为CC_FLAGS定义多个值,该怎么办?
make -f makefile CC_FLAGS='-DVERSION='\"1.2.3\"' -DVERSION_1_2_3'
这不起作用。想法是有一个字符串告诉软件版本号以及#ifdef用法的符号。
答案 0 :(得分:2)
您不需要在内添加单引号。这有效:
make -f makefile CC_FLAGS='-DVERSION=\"1.2.3\" -DVERSION_1_2_3'
如此程序所示
int main (void)
{
printf ("Are we defined?\n");
#ifdef VERSION_1_2_3
printf ("yeah we have a version.\n");
#endif
#ifdef VERSION
printf ("version is: \"%s\"\n", VERSION);
#endif
return 0;
}
答案 1 :(得分:1)
您需要为shell使用正确的转义/引用。试试这个:
make -f makefile CC_FLAGS='-DVERSION=\"1.2.3\" -DVERSION_1_2_3'