【问题标题】:Lot of warnings when applying pedantic GCC keys to project in Qt将迂腐的 GCC 密钥应用于 Qt 中的项目时出现很多警告
【发布时间】:2013-01-22 18:01:33
【问题描述】:

简介

前段时间我发现,迂腐的 GCC 密钥很有用,可以建议我编写更简洁的代码。 当我编写简单的控制台 C++ 应用程序并使用参数编译它时:

-Wall -Wextra -pedantic -Weffc++ -Wold-style-cast
-Wconversion -Winit-self -Wunreachable-code

(这里有关于所有这些的完整记录信息:Options to Request or Suppress Warnings、Options Controlling C++ Dialect)


问题

现在,我正在使用带有 MinGW 编译器的 Qt 4.8.4 来构建应用程序。 问题是当我添加到我的.pro-file 下一行时:

QMAKE_CXXFLAGS += -Wall -Wextra -pedantic -Weffc++ -Wold-style-cast
QMAKE_CXXFLAGS += -Wconversion -Winit-self

我收到了很多来自 Qt 来源的警告,但不是来自我的来源。


示例

上面在.pro-file 中写入参数的简单 Qt GUI 项目给出 517 个警告,例如:

D:\Qt\4.8.4\src\corelib\global\qglobal.h:981:警告:基类 'struct QIntegerForSize' 有一个非虚拟析构函数 [-Weffc++]

D:\Qt\4.8.4\src\corelib\tools\qpoint.h:174:警告:从 'int' 转换为 'float' 可能会改变其值 [-Wconversion]

...

等等。


问题

如何避免将迂腐参数应用于 Qt 的源代码,并仅在我的代码中使用该参数?

【问题讨论】:

    标签: c++ qt gcc mingw compiler-warnings


    【解决方案1】:

    如果您使用 GCC 的 -isystem 标志将它们标记为系统标头,您将不会看到警告。 (另见http://gcc.gnu.org/onlinedocs/cpp/System-Headers.html)。

    【讨论】:

    • 是的!你完全正确!就我而言(在 Windows 上),我通过添加 QMAKE_CXXFLAGS += -isystem "D:\\Qt\\4.8.4\\include" QMAKE_CXXFLAGS += -Wall -Wextra -pedantic -Wold-style 让它按我的意愿工作-cast QMAKE_CXXFLAGS += -Wconversion -Winit-self 到我的.pro-文件。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    相关资源
    最近更新 更多