问题标签 [gcc-warning]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
20341 浏览

gcc - 如何使这个 GCC 警告成为错误?

我从 GCC 得到这个警告:

警告:不能通过 '...' 传递非 POD 类型 'class Something' 的对象;调用将在运行时中止

这是非常致命的,尤其是因为它调用了中止。为什么这不是错误?我想让它成为一个错误,但是:

  1. 如何使特定警告成为错误?
  2. 是哪个警告?根据3.8 Options to Request or Suppress Warnings-Wno-invalid-offsetof它看起来像是隐藏它的标志,但事实并非如此。
0 投票
9 回答
13489 浏览

c++ - 有没有办法在命令行获得可读的 gcc 错误和警告输出?

对于一些长错误,gcc 输出很密集并且有很多换行等。特别是当错误很细微时,我可能需要 10-30 秒的眯眼才能用我的眼睛解析它。

我已经把它粘贴到一个打开的代码编辑器窗口中,以获得一些基本的语法突出显示并启用正则表达式的重新格式化。

有没有人发明了一种更自动化的方法?

0 投票
5 回答
16222 浏览

c - 禁止警告:使用 `mktemp' 是危险的

如何抑制来自 gcc 链接器的以下警告:

警告:使用“mktemp”是危险的,最好使用“mkstemp”

我确实知道使用它更好,mkstemp()但由于某种原因我必须使用mktemp()函数。

0 投票
4 回答
1883 浏览

c - 如何关闭来自 gcc 的错误浮点/长错误消息

我最近将我们的代码库从浮点数更改为长变量,发现编译器在我知道仍然错误的区域没有生成错误消息。这导致我将 -Wconversion 添加到编译器标志中。但是,哎呀,这会导致一些虚假的错误消息。在下面的代码段中,我得到了如上所述的错误。我该怎么做才能根据具体情况抑制此消息,或者哄 gcc 对此更聪明?-Wconversion 标志在我们的代码库中生成数千条警告。我将不得不检查它们吗?嗯。

编辑

正如 John Millikin 所指出的,-Wconversion 标志正在“按设计”工作。(我原以为这是关于类型转换,但事实证明这是关于将真正旧的 C 风格程序转换为 ISO 标准 C。该死。阅读我的 gcc 版本的 gcc 警告文档页面并没有给我希望,但无论如何,我真正想要的是其他一些警告标志,以启用它将在以下代码中正确警告,而不是给出虚假警告。

编辑 2

真正的解决方案是升级我的编译器。出于复杂的原因,这不是公司愿意做的事情(叹气)。

0 投票
4 回答
20334 浏览

linux - 抑制 gcc 警告:“警告:这是先前定义的位置”

我需要一组围绕标准系统调用的包装器——open、listen 等。对于这些,我有一些“#define”,如:

但是当我编译头文件和相关的 .c 文件时,我收到以下警告:

/jcl_wrappers.h:114:1: warning: "open" redefined
/jcl_wrappers.h:113:1: warning: 这是之前定义的位置

我怎样才能抑制这些警告?

0 投票
2 回答
22312 浏览

c - “警告:返回使指针从没有强制转换的整数”在C中是什么意思?

我正在用 C 编写一个简单的函数,其目的是获取一个 6 位数字,计算出前 3 位,并在此基础上返回一个“r”、“w”或“o”。

但是,当我编译时,我收到此警告:'return 从指针中生成整数而不进行强制转换'。然后,当我运行程序时,我发现该函数正在返回一个奇怪的字符,它绝对不是我所追求的三个字符之一。

这里发生了什么?提前致谢。

这是我的功能:

0 投票
3 回答
263 浏览

c++ - 与“索引”相关的编译错误 - 它实际上是一个函数吗?

我正在从我们的编译中删除所有警告,并遇到以下问题:

警告:`char* index(const char*, int)' 的地址将始终为 'true'

对于以下代码行:

DEBUG_MSG 是我们的日志记录宏之一,预处理器将其替换为采用 C++ 样式流操作的语句。

index 似乎没有被声明,所以我假设它应该是这样的:

并且 index 将是标准库中“char* index(const char*, int)”函数的函数*,但是 index 函数有什么作用?谷歌似乎毫无用处,因为它提取了与 C++ 相关的书籍索引。

在我对这个警告的解释中是否遗漏了什么?

0 投票
5 回答
7619 浏览

c++ - 禁用不兼容选项的 gcc 警告

我很好奇是否有一个选项可以禁用关于参数对正在编译的语言无效的 gcc 警告。

前任:

我们的构建系统会在整个构建过程中传递我们在全局范围内决定的警告。我们同时拥有 C/C++ 代码,并且在尝试查找实际警告时,警告会变得非常烦人。

有什么建议么?

0 投票
4 回答
396999 浏览

c - 警告:内置函数“xyz”的隐式声明不兼容

在编译一些二进制文件时,我收到了许多这样的警告:

为了尝试解决这个问题,我添加了

在与此警告相关的 C 文件的顶部,除了使用以下标志进行编译:

我正在使用 GCC 4.1.2:

我应该怎么做才能解决这些警告?

0 投票
4 回答
3858 浏览

c++ - 如何在 GCC 中抑制“条件表达式中的枚举和非枚举类型”警告

我不断从第三方库(我不想调试)收到此警告,因此我非常感谢一种抑制此特定警告的方法。谷歌让我失望了,所以我在这里。