2016-01-23 83 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,並且可以重新創建它。