qt54靜態編譯
『壹』 QT 靜態編譯
qt 開源版本 不允許靜態編譯
可以將DLL打包,就能再其他的機器上運行了.
請採納。
『貳』 QT5靜態編譯無法載入資料庫插件
今天終於自己靜態編譯過了QT5.3.1, 成功用在項目上了, 記錄下configure指令.
configure -confirm-license -opensource -platform win32-msvc2013 -mp -debug-and-release -static -prefix "E:\Qt\5.3.1-static-vs2013" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit
其中 -mp 是啟用多核編譯的開關
『叄』 QT 5.5.0 怎麼設置才能實現靜態編譯
qt默認的編譯方式是動態編譯的,但是有時候編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯程序,qt要實現靜態編譯必須庫文件也是靜態編譯的,可以用這個命令編譯靜態庫:
1.將c:\qt\2010.05\qt\mkspecs\win32-g++\qmake.conf文件中的qmake_lflags
=
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
改為
qmake_lflags
=
-static
-enable-stdcall-fixup
-wl,-enable-auto-import
-wl,-enable-runtime-pseudo-reloc
2.在開始菜單里找到qt
command
prompt並運行,輸入命令:
configure
-static
-debug-and-release
-no-exceptions
-l
"c:\qt\2010.05\qt\include"
-l
"c:\qt\2010.05\qt\lib"
-l指定一下路徑,防止用到vc的頭文
『肆』 請哪位來解釋一下Qt靜態編譯和動態編譯的區別
靜態編譯與動態編譯的區別:
1、動態編譯的可執行文件需要附帶一個的動態鏈接庫,在執行時,需要調用其對應動態鏈接庫中的命令。
所以其優點一方面是縮小了執行文件本身的體積,另一方面是加快了編譯速度,節省了系統資源。
缺點一是哪怕是很簡單的程序,只用到了鏈接庫中的一兩條命令,也需要附帶一個相對龐大的鏈接庫;二是如果其他計算機上沒有安裝對應的運行庫,則用動態編譯的可執行文件就不能運行。
『伍』 Qt下如何編譯庫
一般分為動態庫和靜態庫,方法分別如下:
一.
靜態庫的生成
1.
測試目錄:
lib
2.
源碼文件名:
mywindow.h,
mywindow.cpp
3.
編寫項目文件:
mywindow.pro
注意兩點:
TEMPLATE
=
lib
CONFIG
+=
staticlib
4.
生成Makefile:
qmake
mywindow.pro
5.
編譯生成靜態庫libmywindow.a
make
二.
靜態庫的使用
1.
測試目錄:
test
2.
將mywindow.h與libmywindow.a拷貝至test目錄下
3.
編寫main.cpp,
包含頭文件mywindow.h,
並調用MyWindow類
4.
編寫項目文件:
test.pro
注意加上庫路徑與庫文件名:
LIBS
+=
-L
./
-lmywindow
5.
生成Makefile:
qmake
test.pro
6.
編譯:
make
7.
運行:
./test
三.
動態庫的生成
動態庫編譯基本和靜態庫類似,需要將上述將要進行編譯的項目文件.pro中下面這行去掉
CONFIG
+=
staticlib
按上述操作編譯完後就可以得到以lib開頭並且.so*
結尾動態庫文件,一般有多個。
『陸』 QT交叉編譯時怎麼添加靜態庫,急!!!
INCPATH = -I../EmbedSky/qt-4.5/__install/arm/mkspecs/default -I. -I../EmbedSky/qt-4.5/__install/arm/include/QtCore -I../EmbedSky/qt-4.5/__install/arm/include/QtNetwork -I../EmbedSky/qt-4.5/__install/arm/include/QtGui -I../EmbedSky/qt-4.5/__install/arm/include -I. -I. -I.
在這里增加你編譯的靜態庫。。。可以試試,我也是新手
『柒』 如何靜態編譯發布Qt應用程序
如果你說的是Qt程序的話,靜態編譯就得自行從源碼開始編譯Qt靜態庫,官網預編譯的版本是不包含靜態庫的。這個很復雜,請參考qt-everywhere-opensource 中提供的編譯幫助。注意如果使用miongw的話,gcc版本最好不要是4.6.2。這個版本比較特殊,但是它是mingw官方版的最新打包版本。
如果你說的是非qt庫依賴的話,有兩種mingw和vs,前者有部分發行版默認去除了dll依賴,直接連接的靜態庫,後者非常不推薦使用靜態庫,畢竟它載入的是系統常用dll,基本上所有系統都是推薦安裝的運行時環境,用靜態庫吃力不討好。
『捌』 Qt5.12.5 靜態編譯以及裁剪大小對比
最近在研究用靜態編譯的 Qt 做個 Qt 的安裝包程序,因為 nsis 在界面自定義還有多語言適配等問題上不太理想。做安裝包程序基本上只需要有最基礎的 Qt 界面模塊即可,不過把除了 UI 的模塊全部去掉又比較難用...這里記錄下兩種極端編譯配置下生成的程序大小作為參考。
編譯需要的環境可以看官方文檔, windows-requirements 中的 Building from Source 有說明需要安裝的工具,所有工具都記得要添加到環境變數。
最後的-mp 是多核編譯的參數,多核編譯用 jom 快得一匹,全模塊也只要 20 分鍾編譯完成。
這個配置把能刪的模塊都刪了,編譯出來後基本也就基礎UI相關類能用...所以編譯起來超快的。
比全模塊配置生成的exe減少了 30%的大小,不過 30%也就 3M,在 windows 平台的話倒是沒必要追求這種極致了=-=
此時如果是移動了編譯後的路徑,可能報錯 Qt version is not properly installed,please run make install 。在 qmake.exe 所在目錄新建一個 qt.conf 文件,並添加下面的內容即可:
『玖』 Qt creator 如何設置靜態編譯
Qt默認
編譯
式
態編譯
候
編寫
程序要發布
帶
態庫文件
繁瑣
需要靜態編譯
程序
Qt要實現靜態編譯必須庫文件
靜態編譯
用
命令編譯靜態庫:1.
C:\Qt\2010.05\qt\mkspecs\win32-g++文件
QMAKE_LFLAGS
=
-enable-stdcall-fixup
-Wl,-enable-auto-import
-Wl,-enable-runtime-pseudo-reloc
改
QMAKE_LFLAGS
=
-static
-enable-stdcall-fixup
-Wl,-enable-auto-import
-Wl,-enable-runtime-pseudo-reloc2.
始菜單
找
Qt
Command
Prompt並運行
輸入命令:
configure
-static
-debug-and-release
-no-exceptions
-L
"C:\Qt\2010.05\qt\include"
-L
"C:\Qt\2010.05\qt\lib"-L指定
路徑
防止用
vc
文件選擇
源:O;選擇license:y;3.
條命令運行
功
再輸入命令:
mingw32-make
sub-src等1
~3
能
運行完
完
ok
