簡體   English   中英

如何在g ++中抑制特定警告

[英]How to suppress specific warnings in g++

我想抑制來自g ++的特定警告。 我知道-Wno-XXX標志,但我正在尋找更具體的東西。 我想要-Weffc++ 一些警告,但不是所有警告。 像你可以用lint做的事情 - 禁用特定的消息。

在gcc中有內置的方法可以做到這一點嗎? 我是否必須編寫包裝腳本?

不幸的是,g ++不提供此功能。 在VC ++中,您可以使用#pragma warning來禁用某些特定警告。 在gcc中,最接近的是診斷編譯指示 ,它允許您為某些文件或項目啟用/禁用某些類型的診斷。

對於某些警告,有一個命令行開關來禁用它們。 要知道要使用哪個開關,請將-fdiagnostics-show-option傳遞給gcc。

將標准錯誤傳遞給過濾器,該過濾器會刪除您不想看到的內容。 例如,這是我的make文件:

main.o:main.cpp g ++ -c -Wall main.cpp 2>&1 | grep -v Wunused-variable

你可以在輸出上使用grep -v

根據您要禁用的警告,您有時可以更正代碼。 例如:

int main()
{
  int i;
}

生成: foo.cc:4:警告:未使用的變量'i'

然而,這不是:

#define MARKUSED(X)  ((void)(&(X)))

int main()
{
  int i;
  MARKUSED(i);
}

暫無
暫無

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

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