创建命令行字符串变量

时间:2015-05-27 21:21:30

标签: c command-line makefile symbols

我想在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用法的符号。

2 个答案:

答案 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'