我有一个包含以下几行的 makefile:
CXX=clang++
CXXFLAGS=-g -std=c++11 -pedantic -Wno-c++11-extensions
我仍然得到这个:
警告:“auto”类型说明符是 C++11 扩展 [-Wc++11-extensions]
有没有一种方法可以使用 makefile 隐藏警告?
最佳答案
问题后编辑
rsay3 原帖内容不足以被正确回答。帖子中没有说明的是正确的方法,这让我们只能推断问题实际上是在其他地方,问题中没有说明的其他地方。
如果使用-std=c++11
,我们不应该收到任何关于某个功能仅在 C++11 中可用的警告(因为我们已经将其编译为 C++11 ),并且冗余的 -Wno-c++11-extensions
是正确的(即使是不必要的)。
问题前编辑
-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;
关于c++ - 使用 makefile 隐藏 clang 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22535236/