我在bash中有一个构建脚本,它可以执行以下操作:
if [[ $DEBUG ]]; then
MAKE_CMD="$MAKE_CMD $DEBUG_FLAGS"
fi
$ DEBUG_FLAGS初始化为:
DEBUG_FLAGS="GDB_FLAG='-g' OTHER_CFLAGS='-O0 -g'"
然后我只使用$ MAKE_CMD来编译代码。该脚本无需将DEBUG_FLAGS添加到原始make命令即可,但添加标志会导致问题。如果我使用相同的调试标志手动输入$ MAKE_CMD,它也可以工作。我唯一可以推断的是,我的报价错误导致了问题。你看我的报价有问题吗?
答案 0 :(得分:1)
<强> make.sh 强>:
#!/bin/bash
MAKE_CMD="make -f bash.mak"
DEBUG_FLAGS="GDB_FLAG='-g' OTHER_CFLAGS='-O0 -g'"
if [[ $DEBUG ]]; then
MAKE_CMD="$MAKE_CMD $DEBUG_FLAGS"
fi
eval $MAKE_CMD
bash.mak :(注意标签与空格!)
all:
echo $(GDB_FLAG)
echo $(OTHER_CFLAGS)
命令行示例:
$ DEBUG=true ./make.sh
echo -g
-g
echo -O0 -g
-O0 -g