2

介绍

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

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

(这里是关于它们的完整文档信息:请求或抑制警告选项,控制 C++ 方言的选项)


问题

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

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

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


例子

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

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

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

...

等等。


问题

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

4

1 回答 1

6

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

于 2013-02-07T10:28:45.237 回答