簡體   English   中英

vs2013編譯用於調試但不用於發布?

[英]vs2013 compile for debug but not for release?

我在VS2013遇到過奇怪的事情。 我的程序在調試模式下很好地構建。 但在發布模式下,有很多錯誤,如:

 Error 2 error C2440: 'default argument' : cannot convert from 'const wchar_t [1]' to 'const BSTR'   (src\GAudioOutput.cc) C:\Program Files (x86)\Windows Kits\8.1\Include\um\sapi.h 16917 1 qgroundcontrol

這是vs 2013 express版本的最新版本。 我昨天得到了它。 這是vs2013的錯誤嗎? 有解決方案嗎 編輯:所有錯誤都是C2440:無法從xxx轉換為xxx

編輯2:我使用VS2010編譯時沒有任何問題的相同代碼。 我發現所有錯誤都來自windows_kit 8.1。 有什么想法嗎?

使用Qt5.4和msvc2013構建項目時,我遇到了相同的編譯錯誤。 這是因為windows標頭違反了標准,它將通過在.pro文件中添加以下行來修復:

win32: QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings

我終於找到了原因:

我使用的是最新的Qt 5.4測試版。 Qt 5.4 beta中存在一個錯誤,導致VS2013發布版本中的結果項目停止工作。

雖然它可能對其他人,使用Windows和vs 2013的人沒有幫助,但請避免使用qt 5.4 beta版。

將此行添加到.pro文件中

win32: QMAKE_CXXFLAGS_RELEASE -= -Zc:strictStrings

當您的代碼包含違反strictStrings規則的外部.h文件時,您仍然會收到錯誤。

更好的方法是從文件$ QT_DIR / mkspecs / win32-msvc2013 / qmake.conf中的條目QMAKE_CFLAGS_RELEASE和QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO中刪除-Zc:strictStrings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM