使用makefile隐藏clang警告

Hide clang warnings using makefile

本文关键字:警告 clang 隐藏 makefile 使用      更新时间:2023-10-16

我有一个makefile,有以下几行:

CXX=clang++
CXXFLAGS=-g -std=c++11 -pedantic -Wno-c++11-extensions

我仍然得到这个:

warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]

是否有一种方法,我可以隐藏警告使用makefile?

POST QUESTION EDIT

rsay3原帖中的内容不足以得到正确的回答。文章中没有说明的是正确的方法,这使我们只能推断出问题实际上是在其他地方,而在问题中没有说明的地方。

如果使用-std=c++11,我们不应该得到任何警告,关于某些特性只在c++ 11中可用(因为我们已经将其编译为c++ 11),并且冗余的-Wno-c++11-extensions是正确的(即使没有必要)。


PRE QUESTION EDIT

-W...和添加的警告说明符使能够发出特定的警告,如果您想要抑制诊断,则必须使用-Wno-...,如下面的示例所示:

CXXFLAGS=-g -std=c++11 -pedantic -Wno-c++11-extensions

// main.cpp
int main () {
  auto val = 123;
}

<一口>

% clang++ -Wall -std=c++03 main.cpp
foo.cpp:2:3: warning: 'auto' type specifier is a C++11 extension [-Wc++11-extensions]
  auto val = 123;
foo.cpp:2:8: warning: unused variable 'val' [-Wunused-variable]
  auto val = 123;

<一口>

% clang++ -Wall -Wno-c++11-extensions -std=c++03 main.cpp
foo.cpp:2:8: warning: unused variable 'val' [-Wunused-variable]
  auto val = 123;