我試圖在不同版本的cc上編譯兩個不同機器上的相同C文件。靜態聲明遵循非靜態聲明
gcc版本3.2.3說:warning: 'foo' was declared implicitly 'extern' and later 'static'
gcc版本4.1.2說:error: static declaration of 'foo' follows non-static declaration
AFAICT,都具有相同的CFLAGS。我想讓gcc 4.1.2的行爲與gcc 3.2.3類似,也就是找到一個可以將這個錯誤轉化爲警告的選項。
事實上,代碼並沒有對函數進行原型化,所以gcc會假設一個隱式的靜態聲明。正確的答案是,沒有選項可以關閉此錯誤。 – Alsciende 2010-07-01 07:40:38
你可以用'-Werror-implicit-function-declaration'將隱式聲明變成錯誤(在gcc 3.4下,總之;不知道後面的版本)。 – detly 2010-07-01 07:55:54
我做到了,但錯誤仍然存在! pastebin.com/2mpnyMPj – 2016-02-01 06:06:05