windows MINGW環境 編譯Qt 庫

2021-07-10 04:55:20 字數 1965 閱讀 6252

需要用到qt靜態版,而官方未提供,需要自己編譯。 

qt-everywhere-opensource-src

1、修改環境變數工

修改前請先備份當前的環境變數。然後:

(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官網:

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

用mingw靜態編譯qt4.8.2和qt5.1.1

qt編譯./configure引數的詳細解釋

qt5.1編譯後的安裝目錄問題

Rust環境搭建(Windows MinGW)

設定環境變數 cargo home來指定cargo的安裝目錄。設定環境變數 rustup home來指定rustup的安裝目錄。雙擊安裝,顯示下圖時選擇2 1 proceed with installation default 確認並安裝 預設 2 customize installation 自定...

APACHE TOMCAT環境下JSP的編碼問題

今天又遇到亂碼問題,可真煩.為什麼tomcat就不能自動判斷專案的編碼,而一定要專案遵循tomcat的編碼.說說解決方法吧 在tomcat的server.xml配置檔案中的connector中新增uriencoding utf 8 屬性,如 如果是apache整合tomcat,則要在連線的conne...

在eclipse環境下修改tomcat編碼的問題

如果在eclipse中配置了tomcat後,其實,tomcat所用的所有tomcat配置檔案,都不是catalina home config下面的xml檔案,而是在eclipse所建立的servers檢視下的配置中,如圖 所有,諸如修改在catalina home下的config中的server.x...