簡體   English   中英

作用域g ++學步編譯

[英]scope g++ pedantic compile

是否可以取消某些文件的-pedantic開關? 例如,我使用alsa-lib編譯東西,我將其稱為standard

#include <alsa/asoundlib.h>

但是-pedantic對此文件感到恐慌。 我願意並有興趣在自己的代碼中更正警告和奇怪之處,但對Alsa和其他不相關的第三方不滿意。

有沒有辦法確定-pedantic用法的范圍?

通常,除非您明確指定-Wsystem-headers ,否則GCC會在系統標題中禁止顯示警告。 通常, /usr/include中的<>包含的文件被視為系統頭文件。 您的問題建議您專門添加一些使GCC 將其視為系統頭文件的內容。 您尚未指定要使用的編譯器選項,但是是否要添加任何無意義的-I*選項,這些選項可能會使/usr/include被視為非系統頭目錄?

如果所有其他方法都失敗了,則可以使用-isystem實際將目錄添加為系統頭目錄,但是在此不需要。

編輯 :重新閱讀問題后,如果您在非標准路徑中安裝了alsa-lib,那么我的話您就不需要-isystem選項可能是錯誤的:可能正是您所需要的。

您可以將任何編譯鍵的作用域限定為一個編譯單元

顯然,如果您有多個編譯單元,則可以使用不同的鍵來編譯它們:

g++ -pedantic file_that_does_not_use_ugly_alsa.cpp
g++ file_that_uses_ugly_alsa.cpp

但是您不能編譯單元作用域鍵:在編譯之前對代碼進行預處理,所有標頭都內聯,實際上在替換宏之后,您可能會發現您的代碼使用了某些東西,這使編譯器感到恐慌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM