2010-02-18 79 views

回答

2

如果使用gcc,我認爲你需要的選項組合是-fstrict-aliasing -Wstrict-aliasing=3 -Werror=strict-aliasing。有關strict-aliasing選件的文檔,請參見this text

+0

對於gcc 4.6.3仍然報告警告而不是錯誤。順便說一句,在那個文檔中他們說'-Wstrict-aliasing = 1'會觸發不兼容的指針類型警告。 – ony 2013-11-13 14:32:05

1

如果您使用的是gcc,請添加-Werror標誌。

+0

但我只需要這種類型的警告,而不是全部 – 2010-02-18 08:22:02

+0

您不能選擇只有一些警告被視爲錯誤。這是全部或沒有。 – nos 2010-02-18 08:42:09

+1

你可以選擇特定的警告,如'-Werror = format'(這個id來自gcc output'warning:格式'%s'需要匹配'char *'參數[-Wformat]')。但不幸的是,對於gcc 4.6.3,我得到'不兼容的指針類型[默認啓用]'。所以在這種情況下,看起來像' - 錯誤'是唯一的方法。我使用@lee回答的方法將一些錯誤恢復爲警告(如'-Wno-error = format')。 – ony 2013-11-13 14:37:30

1

我有同樣的問題。上面的建議沒有工作的東西接近是

gcc -Werror -Wno-error = all