编辑:使用的 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 确实包含两个开关,因为回声带出两个开关。