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

How to specify -W4 (Visual Studio) in a Qt project?

我的环境:

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

QMAKE_CXXFLAGS += -W4

但是,我收到了很多这样的警告(我想每个编译单元一个):

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

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

那么,我的问题是:我如何交换 -W3-W4 的顺序(这样 -W4 会优先于 -W3) ?

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

另请注意,如果我将 -Wall(而不是 -W4)添加到 QMAKE_CXXFLAGS,则:

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

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

QMAKE_CXXFLAGS += -W4

您可以在变量前添加,或者实际上 replace the existing warning variable setting 添加您自己的变量:

QMAKE_CXXFLAGS ~= s/-W3/-W4