无法在VS2015中禁用编译器警告

3

我有一个使用Qt5.5.1构建在Visual Studio 2013中很好的应用程序。我正在尝试让它与Visual Studio 2015中的Qt5.6 Beta一起工作,但是我收到了新的编译器警告:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_typeinfo.h(41): error C2220: warning treated as error - no 'object' file generated
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\vcruntime_typeinfo.h(41): warning C4623: '__std_type_info_data': default constructor was implicitly defined as deleted

我正在使用警告级别4 (/W4) 和将警告视为错误 (/WX)。但是,当我在属性页中使用C/C++->Advanced->Disable Specific Warnings来禁用4623警告时,我看到同样的问题。如果我将警告级别更改为3 (/W3) 或更高,同样的事情会发生。

为什么Visual Studio会在它自己的代码上给我一个警告,并且为什么我不能禁用它?

也许这个链接可以帮助:https://dev59.com/WG855IYBdhLWcg3wsWr3 - Ed Heal
不是很对。我在代码中没有包含vcruntime_typeinfo.h,其中一个答案说可以使用禁用特定警告而不是编译指示。 - parsley72
你提到的文件必须直接或间接地被包含。在编译有问题的文件开头使用#pragma。 - Ed Heal
警告出现了数百次,我必须向我的应用程序中的每个文件都添加一个编译指示符。相反,我应该可以使用“禁用特定警告”来解决问题。 - parsley72
1
@parsley72 你应该在“禁用特定的警告”框中输入什么?显示编译器标志结果(编译器设置的最后一页)。请确认你正在构建与你设置编译器标志相同的配置(Debug/Release)和平台(x86/x64)。 - Ivan Aksamentov - Drop
请查看编译器的标志“/wd4624623”。 - Ed Heal
2个回答

4
感谢@Drop的建议,我检查了“禁用特定警告”字段中输入4623后编译器设置中显示的内容。惊讶的是看到了/wd"4623"。当我将其删除并在“附加选项”字段中添加/wd4623时,警告消失了。
这似乎是Visual Studio 2015中的一个bug,但我找不到任何相关参考。
更新:在Visual Studio 2015 Update 3中仍存在此bug,因此我已向Microsoft报告,并且他们可以重现它。

这个错误在VS2019 16.4.3中仍然存在。你知道Microsoft是否有计划修复它吗?这相当明显... - egyik
我也遇到了这个问题!Stackoverflow来拯救了!! :-) - U. W.

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接