c++ - 暂时禁用特定版本 GCC 的警告

标签 c++ gcc gcc-warning

我有以下情况-

我需要使用两个不同版本的 GCC(3.2 和 4.4)编译我的代码,并希望看到所有警告并将它们视为错误(否则就是一个滑坡)。我必须包含我无法更改的头文件,其中包含一些代码。此代码使较新的 GCC 抛出警告(如未使用的参数)。

如果我添加类似的东西

#pragma GCC diagnostic ignored "-Wunused-parameter"
#include <bad_header.hpp>
#pragma GCC diagnostic error "-Wunused-parameter"

它解决了较新的 GCC 的问题,但较旧的 GCC 不熟悉此 pragma 并发出警告(成为错误)。

我能做什么?

  1. 停止将警告视为错误
  2. 用某种版本检查宏包围我的 pragma

我不喜欢这两种解决方案,我还能做些什么吗?

根据 Sander De Dycker 的回答更新

我的构建系统不允许我在 gcc 中使用 -isystem 标志

最佳答案

由于您只想抑制不受您控制的 header 的警告,您可以使用 -isystem 将这些 header 标记为系统 header 。而不是 -I,gcc 将不再为它们生成警告 (how gcc treats system headers)。

关于c++ - 暂时禁用特定版本 GCC 的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402874/

相关文章:

c++ - 检查双变量是否包含整数,而不是浮点

c++ - 编写一个可以嵌入其他应用程序并作为单独进程运行的 shell

c++ - 在 SELECT 中拆分一个 varbinary

c++ - 如何在 gcc 中禁用尾调用优化

c++ - 有没有一种直接的方法可以在不通过无关 Material 的情况下获得有关 gcc 可接受的选项值(例如 -std)的明确详细信息?

c - 使用裸机覆盆子pi调用printf到uart时,应用程序挂起

c - 如何让 gcc 警告返回局部变量的地址?

c - 解决宏中的警告

c++ - C++中如何将函数作为参数传递?

c - 即使我添加 %s,格式也不是字符串文字