命令行变量到GNU使用sh不工作

时间:2012-11-22 14:03:52

标签: shell makefile gnu-make

使用:

make -f Makefile.custom CFLAGS="-DFLAG_ONE -DFLAG_TWO" clean target

什么行不通是

FLAGS="-DFLAG_ONE -DFLAG_TWO"
make -f Makefile.custom CFLAGS=$FLAGS clean target

错误: 它开始认为-D是制造和失败的论据。

尝试: 使用转义字符

FLAGS="\"-DFLAG_ONE -DFLAG_TWO\""

任何帮助将不胜感激。

- UPDATE -

这是一种解决方法,但问题仍然存在。

CFLAGS="-DFLAG_ONE -DFLAG_TWO"
export CFLAGS
make -f Makefile.custom clean target

2 个答案:

答案 0 :(得分:1)

CFLAGS="-DFLAG_ONE -DFLAG_TWO" make -f Makefile.custom clean target

简单的Makefile:

all:
        echo ${CFLAGS}

...将打印:

-DFLAG_ONE -DFLAG_TWO

......因此它确实有用。

答案 1 :(得分:1)

报价是必要的:

FLAGS="-DFLAG_ONE -DFLAG_TWO"
make -f Makefile.custom CFLAGS="$FLAGS" clean target