【发布时间】:2019-01-23 11:15:55
【问题描述】:
我的环境:
- 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)?
注意这不起作用:我尝试修改Qt的配置文件C:\Qt\5.6.2\msvc2015_64\mkspecs\common\msvc-desktop.conf,将变量QMAKE_CFLAGS_WARN_ON的值从-W3更改为-W4,而不是添加@ 987654336@ 到 QMAKE_CXXFLAGS 在我的 .pro 文件中,但这会导致库生成许多(数千)警告。我还尝试在我的.pro 文件中将-W4 附加到QMAKE_CXXFLAGS_WARN_ON(而不是QMAKE_CXXFLAGS),结果相同(来自图书馆的数千条警告)。
还要注意,如果我将-Wall(而不是-W4)添加到QMAKE_CXXFLAGS,那么:
- 我没有收到类似的命令行警告(尽管
-Wall是 后跟-W3在命令行) - 我仍然收到许多来自库的警告,但远少于
在
msvc-desktop.conf中将-W3更改为-W4(或将-W4附加到QMAKE_CXXFLAGS_WARN_ON在我的.pro文件中)。
我使用 qmake(通过 Qt Creator),因此任何需要编辑生成的 Visual Studio 项目文件的解决方案都是不可接受的。
【问题讨论】:
-
我现在无法访问 Visual Studio,所以这可能不完全正确,但您可以通过右键单击您的项目来编辑警告级别 -> 属性->c/c++->更改警告级别
-
但这导致库生成了许多(数千个)警告 - 对我来说似乎是预期的结果
-
@Lorand 我的帖子现在解释了为什么这是不可接受的。
-
@VTT 请参阅我帖子的更新版本中提到的
-Wall。 -
How can I swap the order of -W3 and -W4 (so -W4 would take precedence over -W3)?QMAKE_CFLAGS_WARN_ON = -W4 $$QMAKE_CFLAGS_WARN_ON
标签: c++ visual-studio qt qmake