简介
前段时间我发现,那些迂腐的GCC密钥很有用,可以建议我编写更干净的代码。 当我编写简单的控制台C ++应用程序并使用参数编译它时:
-Wall -Wextra -pedantic -Weffc++ -Wold-style-cast
-Wconversion -Winit-self -Wunreachable-code
(以下是有关所有这些内容的完整文档信息:Options to Request or Suppress Warnings,Options Controlling C++ Dialect)
问题
现在,我正在使用Qt 4.8.4和MinGW编译器来构建应用程序。
问题是,当我添加到我的.pro
- 文件的下一行:
QMAKE_CXXFLAGS += -Wall -Wextra -pedantic -Weffc++ -Wold-style-cast
QMAKE_CXXFLAGS += -Wconversion -Winit-self
我得到了一个很多的警告来自Qt的来源,但不是来自我的来源。
示例
上面在.pro
中编写的带有参数的简单Qt GUI项目 - 文件提供了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的源,并仅在我的代码中使用该参数?
答案 0 :(得分:4)
如果使用GCC的-isystem
标记将它们标记为系统标题,则不会看到警告。 (另见http://gcc.gnu.org/onlinedocs/cpp/System-Headers.html)。