c++ - 使用 makefile 隐藏 clang 警告

标签 c++ c++11 makefile

我有一个包含以下几行的 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/

相关文章:

c++ - 在 Windows Qt Project 上存储外部库的最佳实践

android - 如何解决多定义编译器错误

c++ - 将 boost 套接字放入 std::map

c++ - `auto && e` 在基于范围的 for 循环中做了什么?

c++ - 这个语义调用哪个构造函数?

c - 如何使用 make 构建 CS50 程序

linux - 使用可变参数自动执行

java - 在 C++ 的 Java 中失败 ParseFrom 消息

c++ - .c 文件中的 std::string

C++ unordered_map<T, int> 如何区分空单元格和 0