0

GCC の 4.4 -Werror オプションのように、GCC 3.4 コンパイラにすべての警告をエラーにさせる希望はありますか?

ありがとう

4

3 に答える 3

1

醜いハック、「警告:」をgrepするだけです

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

exit 1 を、警告が見つかった場合の処理​​に置き換えます。

于 2011-09-09T09:50:50.483 に答える
1

gcc が stderr に何かを書き込んだ場合は、それをラップしてエラーを返すことができます。

GCC を実行し、ファイルの stderr をリダイレクトし、ファイルを stderr に cat します。

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;
}
于 2011-09-09T09:43:49.973 に答える
0

@pmgが言ったように-

gcc 3.4.6 は -Werror を受け入れます (マニュアルの下部を参照)。gcc 3.3.6 でも受け付けます!!

実際のクレジットは pmg に送られるべきですが、他の皆さんにも感謝します :-)

于 2011-09-09T11:02:10.667 に答える