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

时间:2016-01-23 05:37:35

标签: c++ visual-studio-2015 qt5 compiler-warnings

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

为什么Visual Studio会对自己的代码发出警告,为什么我无法禁用它?

2 个答案:

答案 0 :(得分:3)

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

这似乎是Visual Studio 2015中的一个错误,但我找不到任何引用。

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

答案 1 :(得分:-1)

在公共头文件中使用#pragma

例如,在标题文件中添加以下行。

// To disable warning messages 4456 and 4457.  
#pragma warning( disable : 4456 4457 ) 

请参阅MSDN页面:str.contains

相关问题