1

编辑:使用的 gcc 版本是 4.6。

我正在尝试构建一个工具链,我有一个构建脚本来构建所需的库。

我正在尝试构建 binutils,并且由于警告被视为错误并停止构建过程,因此我在构建脚本中有以下部分:

build_binutils() {
echo "Building binutils..."
if [ ! -e .binutils_extracted ] ; then
    tar -xjf ${FILES}/binutils-${BINUTILS_VER}.tar.bz2
    touch .binutils_extracted
fi
    CFLAGS="-Wno-error=unused-but-set-variable -Wno-error=unused-but-set-parameter"
    echo "echoing cflags..."
    echo $CFLAGS
    rm -rf binutils-build && mkdir -p binutils-build && cd binutils-build &&
    ../binutils-${BINUTILS_VER}/configure --target=arm-elf --prefix=${PREFIX} --enable-interwork --enable-multilib &&
make ${MAKE_THREADS} all CFLAGS=${CFLAGS} &&
    make install &&
    cd ${GNUARM_BUILDDIR}
}

当我运行 buildscript 时,它会在出现未使用但设置参数警告的错误时停止,因为 gcc 仅使用第一个提供的 -Wno-error 开关运行,这可以在日志中看到,即

gcc -c -DHAVE_CONFIG_H -Wno-error=unused-but-set-variable  -I. -I../../binutils-2.20.1/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic  ../../binutils-2.20.1/libiberty/safe-ctype.c -o safe-ctype.o

我的问题是如何让 gcc 实现两个开关?

编辑:我知道 CFLAGS 确实包含两个开关,因为回声带出两个开关。

4

1 回答 1

2

对我来说,这似乎是一个引用问题。

尝试使用CFLAGS="${CFLAGS}"

于 2012-04-18T20:50:03.620 回答