2010-04-20 79 views
5

我正在建立我的程序與-pedantic標誌,這會導致extra ';'錯誤(由於第三方頭使用幾個宏不一致;錯誤是當-pedantic關閉時未顯示)。我真的不想關閉-pedantic,也不想編輯標題。有什麼辦法可以抑制這個確切的錯誤嗎?像-Wno-annoying-semicolon-error編譯器開關什麼的?抑制「額外」;'「錯誤在GCC當-pedantic在

+0

爲什麼要使用迂腐?看着http://gcc.gnu.org/onlinedocs/gcc-4.4.3/gcc/Warning-Options.html#Warning-Options,似乎沒有辦法做到你想要的。當然,如果使用迂腐只是基於一種感覺,你最好沒有它;-) – 2010-04-20 14:09:35

+0

嗯,不僅感覺:)有一些強烈的建議,我必須遵循 – 2010-04-20 14:46:22

+0

嗯,棘手。我不認爲第三方頭是開源的?有任何修復它的機會? – 2010-04-20 17:34:01

回答

1

解決方法是刪除-pedantic。在這種情況下,沒有別的辦法可行。

+0

...或修復buggy代碼。唉。 – 2011-01-28 07:22:06

+0

@RomanD是一個額外的分號真的「越野車」? – 2015-08-21 16:40:07

+0

@KyleStrand實際上並不是「越野車」,但也不完全正確。我不記得四年前哪個圖書館給我帶來這樣的麻煩,但是有一些宏觀的魔法導致了這個問題。 – 2015-08-23 09:37:21

2

當傳遞include路徑時,使用-isystem而不是-I,那麼GCC不會警告您系統標題。

對於你維護的任何頭文件,只需編輯它們。

+0

沒有爲我工作。將庫包含在-isystem中,但linux-> apple交叉編譯器仍然引發了警告,但它肯定適用於g ++和clang – Flamefire 2016-08-15 09:05:15

2

您可以抑制迂腐警告外部標題是這樣的:

//save compiler switches 
#pragma GCC diagnostic push 
#pragma GCC diagnostic ignored "-Wpedantic" 

//Bad headers with problem goes here 
#include <ros/ros.h> 
#include <sensor_msgs/LaserScan.h> 

//restore compiler switches 
#pragma GCC diagnostic pop