摘要: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
--