使用GCC 3.4模拟-Werror选项行为的可能性?

使用GCC 3.4模拟-Werror选项行为的可能性?,c,warnings,gcc3,C,Warnings,Gcc3,有没有希望强制GCC 3.4编译器像GCC的4.4-Werror选项那样将所有警告变成错误 谢谢如果gcc向stderr写入了任何内容,您可以将其包装并返回错误 执行GCC,在文件中重定向stderr,将文件cat到stderr: temp=$(tempfile) trap rm "$temp" EXIT gcc "$@" 2>"$temp" ret=$? cat "$temp" >&2 如果不是0,则返回gcc的退出状态: if [ "$ret" != 0 ]; th

有没有希望强制GCC 3.4编译器像GCC的4.4-Werror选项那样将所有警告变成错误


谢谢

如果gcc向stderr写入了任何内容,您可以将其包装并返回错误

执行GCC,在文件中重定向stderr,将文件cat到stderr:

temp=$(tempfile)
trap rm "$temp" EXIT

gcc "$@" 2>"$temp"
ret=$?

cat "$temp" >&2
如果不是0,则返回gcc的退出状态:

if [ "$ret" != 0 ]; then
    exit $ret;
}
如果文件不为空,则返回1:

if [ $(stat --format=%s "$temp") != "0" ]; then
    exit 1;
}
丑陋的黑客,只是grep“警告:”

将出口1替换为发现警告时应执行的操作。

正如@pmg所说-

gcc 3.4.6验收-Werror(见手册底部);gcc 3.3.6也包括 接受它


真正的积分应该归pmg所有,但也要感谢大家:-)

有什么理由不升级到4.4吗?这将是一个完美的解决方案:)我不能,因为我们使用的第三方LIB与gcc 4.4不兼容:-(gcc 3.4.6接受
-Werror
(请参阅);gcc 3.3.6!!哎呀,不知何故我错过了这个功能:-)非常感谢!
gcc files.c 2>&1 | grep "warning:" && exit 1