【问题标题】:Suppress specific warning in gcc 3.4禁止 gcc 3.4 中的特定警告
【发布时间】:2015-10-30 16:14:48
【问题描述】:

收到如下警告消息,我正在尝试摆脱它

警告:初始化会丢弃指针目标类型中的 `const'

代码需要保持原样,在 VS 中使用 Suppress Specific Warning 但我想知道在 gcc 中是否也有一些方法可以做到这一点。

使用相当旧版本的 GCC 编译器 3.4 我遇到的所有其他帖子都在谈论更高版本。 一些有用的帖子-

How to supress specific warnings in g++

http://www.dbp-consulting.com/tutorials/SuppressingGCCWarnings.html

https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Warning-Options.html

尝试使用-

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
//< code that generates warning >
#pragma GCC diagnostic pop

但随后警告增加-

: warning: ignoring pragma: push
: warning: ignoring pragma: "-Wignored-qualifiers
: warning: initialization discards `const' from pointer target type
: warning: initialization discards `const' from pointer target type
: warning: ignoring pragma: pop

【问题讨论】:

  • daignostic 是错字吗?
  • gcc 3.4: 听起来很有趣
  • 如果 gcc 3.4 不支持这些编译指示,您也可以使用 -Wignored-qualifiers 编译有问题的源文件。
  • 您通常可以通过显式转换来避免该警告,例如char *s = (char*)"do not modify me";。虽然警告是有原因的。
  • @Maverick,如果您开始在新平台上使用相同的程序,甚至只是在此处使用 gcc 等其他编译器,则链接中给出的参数不适用。 gcc 可能只是使用您正在绘制的相同未定义行为来做不同的事情。根据上下文,这可能是不负责任的。

标签: c gcc suppress-warnings gcc-warning


【解决方案1】:

看这里:

<gcc.gnu.org/onlinedocs/gcc/Option-Summary.html>; 

查看 gcc 选项列表并查看:

<gcc.gnu.org/onlinedocs/gcc/…; 

了解更详细的说明。

此链接:

<gcc.gnu.org/onlinedocs/gcc/Warning-Options.html>

有话要说:

"Each of these specific warning options also has a negative form beginning ' -Wno- ' to turn off warnings; 

for example, -Wno-implicit ."

【讨论】:

  • 它给出一个错误 cc1plus: error: Invalid option `-Wno-ignored-qualifiers' 似乎旧版本不支持它。尝试使用 -Wno-discarded-qualifiers link
  • 我们怎样才能知道哪个标志实际打开了警告:初始化从指针目标类型中丢弃`const'这个警告
  • 使用以下编译器标志COMP_FLAGS += \ -Wall \ -Wno-cast-qual \ -Wno-comment \ -D_VMOS \ -DLYNXOS \ -fno-rtti \ -fno-exceptions \ -mminimal-toc \ -fno-builtin \ -D__STDC_LIMIT_MACROS 会影响订单吗?
  • COMP_FLAGS 列表中的那些 `\` 是什么?它们在编译器标志列表中无效
  • 编译器标志的顺序不计算在内,后面的选项将覆盖/修改前面的选项
猜你喜欢
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 2010-11-29
  • 2021-09-24
  • 1970-01-01
相关资源
最近更新 更多