如何在Qt项目中指定-W4(Visual Studio)?

时间:2019-01-23 11:15:56

标签: c++ visual-studio qt qmake

我的环境:

  • Windows 10(64位)
  • Microsoft Visual Studio 2015
  • Qt 5.6.2
  • Qt Creator 4.8.1

我想用-W4而不是默认的-W3来编译C ++项目,所以我将这一行添加到了.pro文件中:

QMAKE_CXXFLAGS += -W4

但是,然后,我得到了许多这样的警告(我想每个编译单元都会收到一个警告):

cl : Command line warning D9025 : overriding '/W4' with '/W3'

从命令行中,我可以看到命令行确实包含-W3-W4(按此顺序)。

因此,我的问题:如何交换-W3-W4的顺序(因此-W4会优先于-W3)?

请注意,这不起作用:我试图通过将变量C:\Qt\5.6.2\msvc2015_64\mkspecs\common\msvc-desktop.conf的值从QMAKE_CFLAGS_WARN_ON更改为{{来修改Qt的配置文件-W3 1}},并且没有将-W4添加到我的-W4文件中的QMAKE_CXXFLAGS中,但这导致库生成许多(数千个)警告。我还尝试在我的.pro文件中将-W4附加到QMAKE_CXXFLAGS_WARN_ON(而不是QMAKE_CXXFLAGS)上,得到相同的结果(来自库的数千条警告)。

还要注意,如果我将.pro(而不是-Wall)添加到-W4,则:

  • 我没有收到类似的命令行警告(尽管QMAKE_CXXFLAGS是 然后在命令行上依次-Wall
  • 我仍然从图书馆收到许多警告,但远远少于 将{{1}中的-W3更改为-W3(或将-W4附加到 msvc-desktop.conf中的-W4

我使用qmake(通过Qt Creator),因此任何需要编辑生成的Visual Studio项目文件的解决方案都是不可接受的。

1 个答案:

答案 0 :(得分:1)

对项目文件的更改警告设置添加到现有变量中,该变量是预定义的:

QMAKE_CXXFLAGS += -W4

您可以在变量前添加前缀,也可以replace the existing warning variable setting后面加上自己的变量:

QMAKE_CXXFLAGS ~= s/-W3/-W4