這就去查了static linking 和 dynamic linking 的差別。
static linking 不會再compile階段加入library,而是在execute階段載入相關 .dll 檔,也比較省空間
(我覺得這很像function的概念,把常用的code存起來就不用一直重複)
dynamic linking 會在compile階段加入library,相對的compile會花費比較多時間,execute時不需要額外的.dll檔,而且檔案較大
因此我在電腦上裝了static 和 dynamic的QT,debug的時候用dynamic(比較快),要release再換static(就不需要再裝額外的.dll檔,簡潔XD)
---------------------------------------
再來就是在電腦上build一個static的QT了,找了很多文章,做了很多嘗試都弄不起來QQ
最後找到這個文章
怕以後連結失效,在這裡做個備份XD
1.先從官網下載source code(不能下載pre-compiled的!!!),如果是用online installer的話勾選版本裡面的source code 安裝就好了(記得是選MSVC的!)
2.解壓縮後找到檔案.....\qt-everywhere-opensource-src-5.7.0\qtbase\mkspecs\common\msvc-desktop.conf
3. 把裡面的值從這樣
QMAKE_CFLAGS_RELEASE = -O2 -MD QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi QMAKE_CFLAGS_DEBUG = -Zi -MDd改成這樣
QMAKE_CFLAGS_RELEASE = -O2 -MT QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi QMAKE_CFLAGS_DEBUG = -Zi -MTd4.電腦要記得安裝microsoft visual studio(msvc),打開Developer Command Prompt for MSVC XXXX(那時候還找不到QQ),進入qt資料夾
5.接下來要先configure,產生Makefile。指令可以自己研究一下,不過有些是必要的(標紅色的那些)
configure -static -debug-and-release -prefix “C:\Qt\Static\5.7.0” -platform win32-msvc2015 -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype -opengl desktop -qt-sql-sqlite -qt-sql-odbc -no-openssl -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests6.再來就開始make囉!(可以加 -jN,N是CPU的核心數,可以加快)
nmake7.make 完就可以install啦
nmake install這樣就大功告成了 !
原文章網址: http://amin-ahmadi.com/2016/09/22/how-to-build-qt-5-7-statically-using-msvc14-microsoft-visual-studio-2015/
沒有留言:
張貼留言