qt靜態編譯
A. Qt如何實現靜態編譯與動態編譯共存
通常不需要在系統變數中加入Qt庫的位置的。Qt Creator可以自動掃描到系統中存在的Qt庫版本,如果掃描不到,可以通過Creator的 Tool->Options->Qt4中添加靜態庫的路徑。而QDevelop雖然沒有那麼智能,但是可以手動指定INCLUDE和LIB的位置。或許,這根本就不是一個問題。如果懷念動態庫,或者在產品發布之前並不想體驗靜態編譯那種蝸牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要記得在Project中選擇相應的版本。
B. 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的頭文
C. QT中怎麼靜態編譯,靜態編譯的步驟是什麼。
靜態編譯需要將整個qt庫編譯成靜態庫才行。
my.oschina.net/weiweiqiao/blog/286487
有教程,不過別人已經編譯好了,你下載使用就行。具體看教程
D. Qt Creator 怎樣設置才能實現靜態編譯
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的頭文
E. 請哪位來解釋一下Qt靜態編譯和動態編譯的區別
靜態編譯與動態編譯的區別:
1、動態編譯的可執行文件需要附帶一個的動態鏈接庫,在執行時,需要調用其對應動態鏈接庫中的命令。
所以其優點一方面是縮小了執行文件本身的體積,另一方面是加快了編譯速度,節省了系統資源。
缺點一是哪怕是很簡單的程序,只用到了鏈接庫中的一兩條命令,也需要附帶一個相對龐大的鏈接庫;二是如果其他計算機上沒有安裝對應的運行庫,則用動態編譯的可執行文件就不能運行。
F. VS2015靜態編譯QT5.6,有人成功過嗎
QT 5.5.1 VS2015 靜態編譯
編譯參數如下:
configure -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "c:\Qt\5.5.1-static-vs2015" -make libs -nomake tests -nomake examples
我的工程用到了這些庫
qtpcred.lib
Ws2_32.lib
Qt5Cored.lib
qtharfbuzzngd.lib
opengl32.lib
Qt5Guid.lib
d3d9.lib
d3dx9.lib
ddraw.lib
D3D11.lib
dxguid.lib
Qt5Widgetsd.lib
Qt5WinExtrasd.lib
imm32.lib
qwindowsd.lib
winmm.lib
qtfreetyped.lib
Qt5PlatformSupportd.lib
G. Qt Creater怎麼編譯出靜態連接的程序
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的頭文件
選擇開源:O;選擇license:y;
3.上一條命令運行成功後再輸入命令: mingw32-make sub-src
等1 ~3 小時可能就運行完了 完成後就可以了。
H. qt靜態編譯後怎樣打包exe文件
一般我都是用動態編譯,把需要的dll和exe放到一個文件夾下就可以。你靜態編譯後應該就能直接打開exe使用。如果不能運行,根據提示,找到對應的系統dll放到一起試試。 你先試一下有問題可以 追問
I. 如何靜態編譯發布Qt應用程序
如果你說的是Qt程序的話,靜態編譯就得自行從源碼開始編譯Qt靜態庫,官網預編譯的版本是不包含靜態庫的。這個很復雜,請參考qt-everywhere-opensource 中提供的編譯幫助。注意如果使用miongw的話,gcc版本最好不要是4.6.2。這個版本比較特殊,但是它是mingw官方版的最新打包版本。
如果你說的是非qt庫依賴的話,有兩種mingw和vs,前者有部分發行版默認去除了dll依賴,直接連接的靜態庫,後者非常不推薦使用靜態庫,畢竟它載入的是系統常用dll,基本上所有系統都是推薦安裝的運行時環境,用靜態庫吃力不討好。
J. 如何解決:linux下qt的靜態編譯
需要自己編譯QT的靜態編譯版本,網上有相應的介紹,主要就是一大堆的參數,用這些參數來編譯QT的靜態版本