在Windows環境下使用MinGW編譯Qt 4.8.6


1、修改環境變量工具推薦:Rapid Environment Editor。官網:http://www.rapidee.com/

修改前請先備份當前的環境變量。然后:

(1)檢查系統變量path,刪除有關mingw其他版本等信息,以免與后續的mingw32-make沖突。

(2)檢查用戶變量INCLUDE、LIB、PATH、MSDevDir和MSVCDir,刪除有關\Microsoft Visual Studio\VC98的信息,因為它們會與后續的mingw32-make沖突,導致編譯出錯。

2、在電腦上安裝mingw編譯器,假設路徑安裝在C:\Qt\mingw32。將C:\Qt\mingw32\bin添加進環境變量path,打開DOS命令行輸入gcc --version和g++ --version和mingw32-make --version驗證編譯器安裝成功。我用的MinGW版本是V4.8.2,軟件來自Qt官網:http://download.qt-project.org/development_releases/prebuilt/mingw_32/i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z

3、解壓qt-everywhere-opensource-src-4.8.6.zip並進入目錄。例如:D:\qt-everywhere-opensource-src-4.8.6\

4、依次執行以下DOS命令:
(1)configure -debug-and-release -opensource -prefix "D:\Qt4.8.6" -platform win32-g++ -nomake demos -nomake examples

常見的使用選項說明:
-debug-and-release    編譯debug和release版
-opensource      選擇開源協議並確認
-platform win32-g++   使用mingw編譯

-prefix "D:\Qt4.8.6" 指定編譯結果目錄,如果未指定則默認當前
-shared 創建和使用共享Qt庫
-static 創建和使用靜態Qt庫
-nomake demos -nomake examples 不編譯例程

-nomake tests 不編譯tests

-skip qtwebkit 忽略qtwebkit,因為編譯它特別消耗時間

-mp 使用多核優化編譯

(2)mingw32-make

(3)mingw32-make install

5、編譯完成后,把C:\Qt\mingw32\bin\路徑下的三個文件libgcc_s_dw2-1.dll、libstdc++-6.dll和libwinpthread-1.dll拷貝到D:\qt-everywhere-opensource-src-4.8.6\bin\。另外,也請把步驟1備份的環境變量還原。

6、修改Qt安裝路徑

最初編譯時選擇的路徑是D:\Qt4.8.6\。如果想將它復制到其他盤符,並且改名,例如:C:\Qt\4.8.6_MinGW。這樣一來會有問題嗎?是的,會有問題,因為Qt有絕對路徑依賴症。改名后C:\Qt\4.8.6_MinGW\bin\的exe執行程序都會出問題,要么程序打不開,要么多國語言發生異常。用記事本打開C:\Qt\4.8.6_MinGW\bin\qmake.exe,查找關鍵字“qt_prfxpath”,可以看到里面含有原始的安裝路徑。我們不可以手動去修改qmake.exe,真正有效的解決方法是:

在C:\Qt\4.8.6_MinGW\bin\路徑下創建一個qt.conf文件,內容為
[paths]
Prefix = C:/Qt/4.8.6_MinGW

請注意:qt.conf文件必須是ANSI格式,並且Prefix的斜杠風格采取的是Linux的,而非Windows,否則會失效。或者使用"Prefix = .. ",如此一來,任意路徑有效。

7、參考文獻

Qt在各平台上的搭建qt-everywhere

http://my.oschina.net/crucian/blog/223107

用mingw靜態編譯Qt4.8.2和Qt5.1.1

http://blog.csdn.net/markl22222/article/details/20734085

QT編譯./configure參數的詳細解釋

http://www.cppblog.com/lauer3912/articles/136423.html

QT5.1編譯后的安裝目錄問題

http://www.qtcn.org/bbs/read-htm-tid-54625-fpage-6.html

http://blog.csdn.net/libaineu2004/article/details/24620709


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM