我的环境:

  • 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更改为-W3来修改Qt的配置文件-W4,并且未在-W4文件中将QMAKE_CXXFLAGS添加到.pro中,但这引起了很多(数千个)警告。由库生成。我还尝试将-W4附加到我的QMAKE_CXXFLAGS_WARN_ON文件中的QMAKE_CXXFLAGS(而不是.pro)上,结果相同(来自库的数千条警告)。

    还要注意,如果我将-Wall(而不是-W4)添加到QMAKE_CXXFLAGS,则:
  • 我没有收到类似的命令行警告(尽管-Wall
    然后在命令行上输入-W3)
  • 我仍然从库中收到许多警告,但远远少于
    -W3更改为-W4中的msvc-desktop.conf(或将-W4附加到
    我的QMAKE_CXXFLAGS_WARN_ON文件中的.pro)。

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

    最佳答案

    对项目文件所做的更改会将警告设置附加到预定义的现有变量中:

    QMAKE_CXXFLAGS += -W4
    

    您可以在变量前添加前缀,也可以在replace the existing warning variable setting之前添加自己的变量:
    QMAKE_CXXFLAGS ~= s/-W3/-W4
    

    关于c++ - 如何在Qt项目中指定-W4(Visual Studio)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54325997/

    10-16 00:46