2012-03-11 57 views
1

如果我運行任何大的開源項目./configure && make,例如紅寶石,這將是成千上萬的控制檯中顯示的編譯器警告。是否可以在警告被禁止的情況下運行(並顯示錯誤,如果有的話)?是否可以使用抑制性警告運行make?

+1

不要的意思只是*讓*警告或所有警告包括那些事情,撥打電話(如編譯器)產生的? – Beta 2012-03-12 01:17:45

+0

我最近沒有編譯過Ruby(如果有的話),但是我編譯的大多數軟件都是在沒有任何警告的情況下編譯的,通常甚至編譯器選項設置爲非常繁瑣。 – 2012-03-12 04:23:42

+0

@Beta編譯器警告當然,C和C++編譯器。我曾試着用'-Wnone'之類的東西''輸出''CFLAGS'和'CXXFLAGS',但它不工作 - 看起來'make'在內部改變了這個環境變量或者取代了它們。 – grigoryvp 2012-03-12 10:44:20

回答

4

添加CFLAGS=-w CPPFLAGS=-w CXXFLAGS=-w LDFLAGS=-w到配置行。

數字!

$ tar -xzf ruby-1.9.3-p125.tar.gz 
$ cd ruby-1.9.3-p125 
$ { ./configure && make; } 2>&1 | wc -l 
1197 
$ cd .. 
$ rm ruby-1.9.3-p125 
$ tar -xzf ruby-1.9.3-p125.tar.gz 
$ cd ruby-1.9.3-p125 
$ { CFLAGS=-w CPPFLAGS=-w CXXFLAGS=-w LDFLAGS=-w ./configure && make;} 2>&1 |wc -l 
989 
$ 

你有它。
香草configure && make1197線
關閉警告:989線
儲蓄:17%

關閉警告絕不阻止錯誤的顯示,所以你還是會知道什麼時候的事不工作。

禁用警告:17%線少。反覆構建Ruby只是爲了計算輸出的行數:無價的。

+0

非常感謝!我錯誤地試圖使用'-Wone'' O_O。 – grigoryvp 2012-03-15 11:39:41

1

您可以使用grep了點。使用make | grep -B 5 Error。 這將顯示包含短語'錯誤'和5行之前的行;)我強烈建議在分析之前將其放入日誌文件中,所以請將./configure && make > logfile

+2

你需要'make 2>&1 | grep ...'過濾寫入'stderr'的錯誤信息。或者,如果首先寫入日誌文件,則使'> logfile 2>&1'。 – 2012-03-12 04:21:05