2016-01-23 164 views
2

我有一个使用Qt5.5.1的应用程序,它在Visual Studio 2013中生成良好。我试图让它与Visual Studio 2015中的Qt5.6 Beta一起工作,但我得到了新的编译器警告:无法在VS2015中禁用编译器警告

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++ - >高级 - >禁用特定警告来禁用警告4623我看到同样的问题。如果我将警告等级更改为3(/ W3)或更高,则会发生同样的情况。

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

+0

Perhaops http://stackoverflow.com/questions/4193476/is-using-pragma-warning-push-pop-the-right-way-to-temporarily- alter-warning-lev会帮助 –

+0

不是。我的代码中没有包含vcruntime_typeinfo.h,其中一个答案表示可以使用禁用特定警告而不是编译指示。 – parsley72

+0

您提到的文件必须直接或间接包含在内。在编译的有问题的文件的开头使用编译指示。 –

回答

3

感谢@ Drop的建议,我在“禁用特定警告”字段中输入4623之后,检查了编译器设置中显示的内容。我很惊讶地看到/wd"4623"。当我删除这个,然后在“其他选项”字段中添加/wd4623,警告消失。

这看起来像是Visual Studio 2015中的一个错误,但我找不到任何对它的引用。

更新:该错误仍然存​​在于Visual Studio 2015 Update 3中,因此我已将它报告给Microsoft,并且可以重新创建它。