Qt static link(on Windows)

  • 11343
  • 0
  • QT
  • 2009-03-23

摘要:Qt static Library(on Windows)

在Windows上的Qt安裝SDK完後,編譯後通常是需要DLL檔才能執行
於是想說找看看有沒有靜態連結的方法,找了很久,在網路上找到了好幾篇,
通常都是先執行configure -static,將連結方式設為靜態,再make
但還是沒不能用,問題出在目錄的問題,因此找到以下一篇文章
http://www.qtforum.org/article/26946/how-to-deploy-a-static-app-in-qt-4-5.html
步驟:
1. 安裝QT SDK (假設安裝路徑 C:\Qt\2009.01)
2. 下載tool Junction (http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx)
3. 開啟"命令提示字元"
   cd c:\
4. 建立目錄
   mkdir C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\
5. 使用junction,做符號連結
   junction C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\4.5.0 C:\Qt\2009.01
   (語法:junction 所建目錄 QT安裝目錄)
6. 回Qt目錄,做configure
   cd C:\Qt\2009.01\qt
   configure -release -static -fast -accessibility -no-qt3support -no-stl -no-phonon -no-scripttools -no-openssl -no-opengl
   最主要是 configure -static

7. 最後執行
   mingw32-make

8. 完成 finished

ps.
 如果要編譯快一點,則下mingw32-make sub-src,
 因為只編譯library,沒有重新編譯其他的,例如exmples等
 參考: http://www.wretch.cc/blog/jaywang4/15097262
 

 

-----compile project----
回專案目錄,編譯專案

qmake -project
qmake
make

----
心得與註解:
1. 編譯後檔案變很大(大約原本所需DLL檔,再小一點)
2. 還是須要mingwm10.dll (15.6kb) --因為compile環境是mingw32

原本動態連結
Debug需要: mingwm10.dll QtCore4.dll QtCored4.dll QtGuid4.dll 共 91.2MB
release需要 : mingwm10.dll QtCore4.dll QtGui4.dll 共13.5MB

靜態連結
debug: 執行檔71.2MB
release: 執行檔10.5MB

--


Yotrew.Wing.蛋型.水瓶.U103.Che.KUAS
Yotrew.Wing.M98111XX@MS98.EDU/MIS.CSU
Yotrew.Wing.69241XX@MS92.CS.CCU
Yotrew.Wing.584012XX@89乙.Che.KUAS
Yotrew.Wing.b8803XXX@U92A.CSIE.ISU