當前位置:首頁 » 編程軟體 » qt中使用vs2019的編譯器

qt中使用vs2019的編譯器

發布時間: 2022-09-02 10:54:24

A. VS里正常的代碼在QT里執行有問題要怎麼弄好QT的

在安裝 QT+MSVC環境的時候,該出的問題我想都讓我碰上了。

  • 問題1 :jom.exe 崩潰,構建不通過。

    jom: ......... Error 219:19:11: 進程"E:QT1ToolsQtCreatorinjom.exe"退出,退出代碼 2 。Error while building/deploying project untitled (kit: Desktop Qt 5.5.1 MSVC2015 64bit)When executing step "Make"

    這個我沒有出現什麼cl不是內部命令的提示,至於使用nmake就更錯了,nmake運行就出問題,估計是安裝時nmake就有問題了。所以不是環境變數之類的錯誤,由於我前期先安裝的QT+MinGW,後來需要MSVC才安裝的vs2015,估計是這個安裝先後順序導致一些配置不對,反正我的kit配置都沒有錯誤提示了也不行,乾脆直接全卸了重新來。這次OK了,msvc,mingw都能用了。後來看到有初始化msvc編譯環境的腳本,如果不行就先使用下試試,沒准就OK了,不用浪費時間重新安裝(安裝時間好長呀)

  • 1

  • 問題2 -1: error: LNK2019: 無法解析的外部符號 **,該符號在函數 ** 中被引用,看圖說話。

    無法解析的外部符號說明,該函數的庫或頭文件沒有被引入,比如下面

    qmfcapp.obj : error LNK2019: 無法解析的外部符號 __imp_SetWindowsHookExW,該符號在函數 "public: static bool __cdecl QMfcApp::pluginInstance(void *)" (?pluginInstance@QMfcApp@@SA_NPEAX@Z) 中被引用

    在QT中找到QMfcApp::pluginInstance函數查看了下使用到外部函數的地方SetWindowsHookEx,點擊可以跳轉到頭文件WinUser.h,那就是庫沒有了。由於原來是MinGW,內部的庫都導入了,轉到MSVC後一些自帶的系統庫沒有加進來。網路查找SetWindowsHookEx該函數所需庫User32.lib,在電腦上搜了。然後在.pro工程文件中右鍵加入庫如下


    把加後綴的勾刪了,我這window下好像沒有專門的d版調試庫。
    OK。這時在庫里就自動加上了下面這幾行。

    unix|win32: LIBS += -L'C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64/' -lUser32INCLUDEPATH += 'C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64'DEPENDPATH += 'C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64'
  • 1

  • 2

  • 3

  • 4

  • 1

  • 問題3 User32.Lib:-1: warning: LNK4272:庫計算機類型「X86」與目標計算機類型「x64」沖突
    剛開始時找錯了庫,找到的是32位編譯出來的user32.lib庫,後來直接到系統盤window下找到了64位的就OK了。

  • 問題4 This application has requested the Runtime to terminate it in an unusual way

    這個在我安裝了vs2015就出現了這問題,沒裝時都好好的。這個上一篇有講到,這次又遇上了,我真的是無語了,也是莫名其妙的又不報了。具體怎麼弄好的我也摸不著,vs2015又裝了VC++里的所有部分(MFC類,兼容XP什麼的兩個,原本就一個VC++編譯器的),到qt安裝目錄里有個vcredist_msvc2015_x86運行,重啟後也一樣,然後還有什麼,重新拷貝庫?一堆事情,一個個試都不好,換vb,vs,突然之間就好了,可是VB來錯誤53,找不到dll了,vs來載入格式不正常,這個看問題5。但有一點可以肯定—-錯誤與下面的dll無關,這個是depends找不到有關的bug。

  • 問題5 試圖載入格式不正確的程序。 (異常來自 HRESULT:0x8007000B)

    這里是目標平台和庫不一致,需要注意下,用MinGW編譯的去MinGW版的QT庫里找對應的庫(debug版和release版),然後要注意的是它是32位的,所以vs里只能選擇X86平台。貌似沒有找到有64的MinGW版本的QT.
    而MSVC我下的是64的,所以只能選則X64平台。拷貝庫也是到msvc版的QT庫里找。如果庫位數不對,會呈粉紅色。

  • 問題6 其他信息: 無法載入 DLL「bstdll.dll」: 找不到指定的程序。 (異常來自 HRESULT:0x8007007F)。

    換成X86的拿mingw編譯出來的試出這問題,拿到在VB下就是 實時錯誤53:找不到DLL的意思了。這個估計就是跟安裝了vs2015的問題有關了。安裝了vs2015後VC++估計把我一些32位的庫給弄掉了,怎麼都無法成功了。嘗試下個msvc 32位的編譯看是否一樣。

  • 問題7 error: C2373: 「saveImage」: 重定義;不同的類型修飾符
    同樣的代碼用64的編譯器和MinGW都沒問題,換成32位的msvc就出問題了,
    .h文件

    extern "C" BSTDLLAPI void __stdcall saveImage(const char *file);

    .cpp文件

    void saveImage(const char *file){
    dev.savePicture(file);
    }

    平常看到的講解導出dll都沒要求實現里也要加上__stdcall,這里報錯就是這個原因,.cpp里也加個__stdcall就OK了。

  • 1

  • 2

  • 3

  • 1

  • 問題8 其他信息: 無法在 DLL「xxx.dll」中找到名為「xxx」的入口點。

    到這一部至少說明,dll可以被找到,目標平台和生成的dll也是一致的,只是入口函數找不到,可能是導出名不對了,depends查看下果然名字被過度修飾了。變成了_function@bytenum形式。
    怎麼解決我不知道msvc的編譯器有沒有這個選項,直接改成這個名字算了。

  • 問題9 發生了 PInvokeStackImbalance
    對PInvoke函數的調用導致堆棧不對稱。

    先看看是不是調用協議不對,vb是__stdcall,vc++默認用__cdecl,如果一致了還出錯,那可能是long要改成int32,這個嘗試改下就行了。我就是這么解決的。

  • 到此,無論是64還是32位都能用了。坑好多啊。MinGW版不知道為什麼就是錯誤提示找不到dll,裝了個VS2015麻煩這么多。有知道的大神可以解惑下。
    有些人說MinGW版編譯的dll不能在window下用是有問題的,反正我不裝VS2015時一切都好好的。如上篇所述,而且也在別人機子上試過。現在沒時間找這個問題了,能用就行了。

B. vs2019 配置qt5.14

本篇接著篇《配置VS2013+Qt5發環境》繼續講解發環境安裝設置安裝包載本電腦要首先安裝qt5.5.1再安裝vs插件啟VS2013進行配置本篇我所需要注意要點向家介紹

C. vs2019 2017 運行qt報錯,插件已經設置好了qt換了好幾個版本

環境變數加了沒,加的是bin路徑,不是include。C:\Qt\Qt5.9.8\5.9.8\msvc2017_64\bin加到Path里取。Qt5.9.8在VS2019之後出的,肯定不支持VS2019。

D. 為什麼QT能選擇編譯套件,而vs不可以

1. 首先你要到Qt官網下載想對應版本的vs-tools工具

  • http://download.qt.io/archive/vsaddin/

2.關閉VS之後,安裝下載的工具。

3.打開VS之後,你可以在VS的工具條看到

4.打開VS的Qt工程,然後你可以在上圖中的QtProjectSettings選擇添加的Qt版本,選擇需要增加的插件~~

PS:如果安裝之後工具欄沒有出現Qt菜單,可以到工具欄->「工具」->「外部程序管理器」把Qt Add-in√上,就出現了~記得下載對應VS版本的。祝好運

E. vs開發qt使用的編譯器是qt的還是vs的

qt是個框架,本身不包含編譯器,可以選擇使用vs或者其他編譯器

F. 怎麼解決VS2019下Qt沒有.pro文件

網頁鏈接

下載 qt-vsaddin-msvc2019。

另外網路了解下vsaddin的安裝和 使用你自然就明白了。加油!

G. 哪個軟體的gcc比較好用

編譯器:GCC Clang LLVM
編輯器:VC6.0 DEV VisualStudio Eclipse Notepad VScode 記事本……
GCC原名GNU C語言編譯器
現在大多數編輯器里帶的編譯器都是用的GCC版的。

H. Visual STudio2017和2019有什麼區別

在VS2019下使用VS2015和VS2017的庫無需再次進行編譯即可直接使用。因此,在VS2019下使用VS2017的Qt是沒有問題的,無需自己編譯Qt庫。

Microsoft Visual Studio(簡稱VS)是美國微軟公司的開發工具包系列產品。VS是一個基本完整的開發工具集,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管控工具、集成開發環境(IDE)等等。

程序開發

1、為了幫助開發人員迅速創建先進的軟體,Visual Studio 2008 提供了改進的語言和數據功能,例如語言集成的查詢 (LINQ),各個編程人員可以利用這些功能更輕松地構建解決方案以分析和處理信息。

2、Visual Studio 2008 還使開發人員能夠從同一開發環境內創建面向多個 .NET Framework 版本的應用程序。開發人員能夠構建面向 .NET Framework 2.0、3.0 或 3.5 的應用程序,意味他們可以在同一環境中支持各種各樣的項目。

用戶體驗

1、Visual Studio 2008為開發人員提供了在最新平台上加速創建緊密聯系的應用程序的新工具,這些平台包括 Web、Windows Vista、Office 2007、SQL Server 2008和Windows Server 2008。

2、對於 Web,ASP NET AJAX 及其他新技術使開發人員能夠迅速創建更高效、互動式更強和更個性化的新一代 Web 體驗。

高效的團隊協作

Visual Studio 2008 提供了幫助開發團隊改進協作的擴展的和改進的服務項目,包括幫助將資料庫專業人員和圖形設計人員加入到開發流程的工具。

I. Qt怎麼添加編譯器

qt安裝目錄下有個管理組件的EXE叫什麼名給忘了,點擊運行就能添加組件了包括編譯器,注意下版本有32和64位的,可以選擇使用mingw或者vs的編譯器。
添加時需要設置一下存儲庫,就是qt下載安裝包的地址,國內最好用國內鏡像網站(qt的download頁面可以查到)速度快。

熱點內容
javawsdl2java 發布:2025-02-12 02:25:21 瀏覽:366
java默認許可權 發布:2025-02-12 02:25:20 瀏覽:655
演算法預測用戶 發布:2025-02-12 02:24:44 瀏覽:390
舊電腦搭建網路列印伺服器 發布:2025-02-12 02:09:45 瀏覽:648
c語言順序表基本操作 發布:2025-02-12 02:09:41 瀏覽:887
安卓光遇怎麼開三檔畫質華為 發布:2025-02-12 01:55:51 瀏覽:193
微信哪裡能找到登陸游戲的密碼 發布:2025-02-12 01:54:22 瀏覽:591
php獲取伺服器ip地址 發布:2025-02-12 01:54:12 瀏覽:578
對象存儲和nas哪個好 發布:2025-02-12 01:50:34 瀏覽:445
phpmulticurl 發布:2025-02-12 01:41:58 瀏覽:70