『壹』 為什麼在Windows下開發 QT 要用到 MinGW 他的作用是什麼
MinGW和VC一樣,是一個開發環境。開發QT用MinGW是因為QT是Linux環境下的一個圖形庫,用來開發圖形界面的應用程序,而Windows環境開發圖形界面應用程序不需要QT,但是為了不大量修改源代碼,就要把QT移植到Win下。
實事上,開發QT也可以用VC,不過需要用源代碼重新編譯QT庫,開始的時候不那麼方便。MinGW因為也是從Linux下移植過來了(當然在Linux下不叫MinGW),所以有相應的編譯好了的QT庫,直接用就可以了。
『貳』 qt 跨平台 選哪個編譯器
Qt 跨平台可以選 MSVC 和 MinGW 兩個編譯器。
MinGW 比較方便,配置易上手,但是 WebEngine 是沒有的。 MSVC 也不錯,功能強大,包括了WebEngine 模塊。 如果項目使用到的一些第三方的 lib,或者 dll,使用 MSVC 編譯出來的,那麼推薦用 MSVC(應該是必須,不同的編譯器生產出的庫一般是不兼容的或者兼容效果差)。
『叄』 qt是c++編譯器自帶的,還是需要自己去下載
Qt不過是使用C++的圖形庫,編譯器可以選用任何支持C++的編譯器,所以需要分別下載和安裝。
windows版的qt,大體分為兩種提供二進制下載,g++和MSVC,無論哪一種在使用前必須先安裝編譯器。另外windows版的集成開發環境Qt-creator gcc版安裝包中帶有編譯器。
在無二進制發布的操作系統,如IBM Aix中就只能使用xlc或gcc編譯器編譯qt源代碼獲得qt庫了。
『肆』 qtcreater 怎麼設置msvc編譯
該方法可以使用在win 8.
1、編譯Qt 5.0.2,編譯器為Msvc 2012
2、下載Cdb.exe,這個是給控制台調試代碼用的,Msvc用的調試器是WinDbg,所以安裝vc是沒有Cdb的,網址:
注意:現在上面說的網址已經不能用了,沿用上面的網址進去下載 WDK 8,這個對應的VS 2012 for win 7, 這個安裝很慢。或者下載2010的對應的CDB,下載網址:
C:\WinDDK\7600.16385.1\Debuggers
這個下面是有CDB的。
3、完成後安裝。
4、打開Qt Creator,在"工具"->"選項"裡面如下設置地方點擊自動檢測即可:
『伍』 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。這時在庫里就自動加上了下面這幾行。
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文件
.cpp文件
void saveImage(const char *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時一切都好好的。如上篇所述,而且也在別人機子上試過。現在沒時間找這個問題了,能用就行了。
『陸』 QT用VS還是MINGW編譯好,有什麼區別
MinGW 兼容性更好,調試也更方便。
VS生成的 exe 發布時依賴的 dll 少一些,其他都不如 mingw。
『柒』 vs2015+qt5.6為什麼每次新建工程都需要配置編譯器
1. 首先,我們到網站下載源碼包,加壓源碼包到磁碟。 2. 由於編譯QtWekbit需要ICU andANGLE 庫,ICU庫需要單獨下載和編譯,從下載ICU4Cversion 56.1並解壓到磁碟,目錄位置參見隨後說明。 3. 在Qt 5.5.1的源碼包中還存在一個BUG,如果直接編譯的...
『捌』 QT中怎麼靜態編譯,靜態編譯的步驟是什麼。
Qt採用編譯的方式安裝的時候,配置中默認的編譯方式是動態編譯的,但是有時候你編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯你的程序,Qt要實現靜態編譯必須庫文件也是靜態編譯的,所以在此介紹一下qt如何來進行靜態編譯第一步:下載源碼包Qt/X11版本:qt-x11-opensource-src-4.5.2.tar.gz第二步:解壓縮tarzxvfqt-x11-opensource-src-4.5.2.tar.gz第三步:進入到剛才解壓縮後的文件夾下並進行配置,如下./configure-release-platformwin32-msvc2008-static-nomakeexamples-nomakedemos-no-qt3support-no-scrip
...
by
fengyetang
2010-07-04
回復
(0)