是否可以使用GCC 3.4模拟-Werror选项行为?

时间:2011-09-09 09:30:02

标签: c warnings gcc3

是否有任何希望迫使GCC 3.4编译器将所有警告变为GCC的4.4 -Werror选项之类的错误?

由于

3 个答案:

答案 0 :(得分:1)

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

执行GCC,将stderr重定向到文件中,将文件捕获到stderr:

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

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

cat "$temp" >&2

如果gcc不是0,则返回gcc的退出状态:

if [ "$ret" != 0 ]; then
    exit $ret;
}

如果文件不为空,则返回1:

if [ $(stat --format=%s "$temp") != "0" ]; then
    exit 1;
}

答案 1 :(得分:1)

丑陋的黑客,只是grep“警告:”

gcc files.c 2>&1 | grep "warning:" && exit 1

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

答案 2 :(得分:0)

正如@pmg所说 -

  

gcc 3.4.6接受-Werror(见手册底部); gcc 3.3.6也   接受它!!

真实信用应该转到pmg,但也感谢其他人: - )