簡體   English   中英

在Visual Studio 2015下使用Microsoft Visual C ++ 2013進行編譯

[英]Compiling with Microsoft Visual C++ 2013 under Visual Studio 2015

我想將Qt 5.5與Microsoft Visual Studio 2015一起使用。但是,Microsoft編譯器與Qt的最后兼容版本是MSVC2013。 因此,我想告訴Visual 2015使用“舊版”模式與舊版本的Microsoft編譯器進行編譯。

怎么做?

當我使用MSVC2015時,出現此錯誤:

Gravité Code    Description Projet  Fichier Ligne
Erreur  LNK2019 symbole externe non résolu "__declspec(dllimport) char const 

* __cdecl std::_Winerror_map(int)" (__imp_?_Winerror_map@std@@YAPBDH@Z) 

référencé dans la fonction "public: virtual class   std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::_System_error_category::message(int)const " (?message@_System_error_category@std@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@H@Z)    helloworld  C:\Users\roman\Documents\QtTest\bin\qtmaind.lib(qtmain_win.obj) 1

我認為這是因為Qt Lib是為MSVC2013編譯的

您正在嘗試將為VS 2013構建的Qt與VS 2015構建的代碼一起使用。這將永遠無法工作-Qt甚至都不是問題,而是在VS版本之間更改C ++ ABI。

所有C ++代碼都必須使用相同的Visual Studio版本進行編譯

編譯器沒有這樣的“傳統模式”功能(少數次要開關之外,例如wchar_t支持等)。

如果已安裝VS2013,則可以使用VS2015 IDE並更改項目的工具集(在項目設置下)。

如果其他所有方法均失敗,則還可以使用VS2015重新編譯QT。


注意:您看到的錯誤是因為C ++運行時ABI中發生重大更改 (它導出了什么而不導出了什么,等等)。 新的運行時dll不再導出某些異常機制。 使用相應的工具鏈重新編譯目標將解決此問題。

暫無
暫無

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

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