0

我在 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,它也可以工作。我唯一能推断的是我的报价是错误的,这导致了问题。你觉得我的引文有什么问题吗?

4

1 回答 1

1

使.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
于 2013-09-30T16:35:11.843 回答