2012-10-06 104 views
4

我爲iOS應用程序使用C++庫。隨着蘋果LLVM 3.1編譯器設置(默認),我得到了這款C很多警告++代碼,他們大多說:Xcode警告:...是GNU擴展

... is a GNU extension 

引進鐺的用戶手冊說: 鐺驅動程序和語言功能有意設計爲儘可能與GNU GCC編譯器兼容,從而簡化從GCC到Clang的遷移。在大多數情況下,代碼「正常工作」。

所以,它只是尋找一個開關來禁用此警告(btw。如何?),或者我應該更好地得到這個lib擺脫所有的GNU擴展嗎?

+0

他們警告不是錯誤,所以忽略他們? –

回答

8

您可以使用編譯器標誌抑制警告。 Clang告訴你每個警告使用哪個編譯器標誌。構建完成後,選擇「視圖」>「導航器」>「顯示日誌導航器」。然後從日誌導航器中選擇最新的生成日誌。查找帶有警告的文件,然後單擊其狀態行右端的披露按鈕。 Xcode將向您顯示該文件的編譯器命令行和輸出。每個警告都應該包含啓用警告的編譯器標誌。例如:

enter image description here

在我的例子,警告標誌-Wpointer-arith。所以警告可以是禁用-Wno-pointer-arith。所以,我可以說標誌添加到「等警示標誌」構建設置:

enter image description here

+2

也添加-Wno-gnu隱藏使用GNU的MAX/MIN時的警告。 – hsafarya