靜態qt編譯動態庫
『壹』 QT程序怎麼調用vc,編譯的靜態庫,動態庫等
mingw編譯出來的靜態庫後綴名為.a,編譯出來的動態庫的導入庫後綴名為.dll.a,而在windows下後綴名為.lib的庫可能是靜態庫也可能是動態庫的導入庫。 mingw編譯出來的動態庫的導入庫可以直接在vc中直接使用
『貳』 請哪位來解釋一下Qt靜態編譯和動態編譯的區別
靜態編譯與動態編譯的區別:
1、動態編譯的可執行文件需要附帶一個的動態鏈接庫,在執行時,需要調用其對應動態鏈接庫中的命令。
所以其優點一方面是縮小了執行文件本身的體積,另一方面是加快了編譯速度,節省了系統資源。
缺點一是哪怕是很簡單的程序,只用到了鏈接庫中的一兩條命令,也需要附帶一個相對龐大的鏈接庫;二是如果其他計算機上沒有安裝對應的運行庫,則用動態編譯的可執行文件就不能運行。
『叄』 Qt如何實現靜態編譯與動態編譯共存
通常不需要在系統變數中加入Qt庫的位置的。Qt Creator可以自動掃描到系統中存在的Qt庫版本,如果掃描不到,可以通過Creator的 Tool->Options->Qt4中添加靜態庫的路徑。而QDevelop雖然沒有那麼智能,但是可以手動指定INCLUDE和LIB的位置。或許,這根本就不是一個問題。如果懷念動態庫,或者在產品發布之前並不想體驗靜態編譯那種蝸牛爬一般的速度,可以在pro文件中指定CONFIG += shared,而且,要記得在Project中選擇相應的版本。
『肆』 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了。。。
『伍』 qt中外部庫調用(重點:dll動態調用,用加減法運算舉例說明)
為了在Qt環境中熟練地調用外部庫,本文將通過加減法小程序的實例,深入探討如何實現動態與靜態調用庫。首先,我們將構建動態庫,並了解如何在Qt項目中添加和鏈接它。
靜態調用庫需要手動添加庫文件,包含.h、.dll、.lib。具體步驟如下:
1. **構建動態庫**:首先,編寫功能函數並構建得到.h、.dll、.lib文件。
2. **導入.h文件**:在Qt項目中,將.h文件導入。
3. **添加動態庫**:通過右鍵菜單選擇「添加動態庫」,指定.lib路徑,選擇靜態鏈接方式。使用QMake進行構建。
對於靜態鏈接,設置如下QMake規則:
- win32: LIBS += -L$$PWD/../Sampleaddpro/build-mydll-Desktop_Qt_5_9_7_MSVC2015_64bit-Debug/debug/ -lmydll
- INCLUDEPATH += $$PWD/../Sampleaddpro/build-mydll-Desktop_Qt_5_9_7_MSVC2015_64bit-Debug/debug
- DEPENDPATH += $$PWD/../Sampleaddpro/build-mydll-Desktop_Qt_5_9_7_MSVC2015_64bit-Debug/debug
動態調用庫則更加簡便,僅需鏈接.dll文件。
動態調用步驟包括:
- 構建動態庫,獲得功能函數。
- 通過右鍵選擇「添加動態庫」,指定.lib路徑,選擇動態鏈接。
- 使用QMake構建。
對於動態鏈接,QMake規則與靜態鏈接類似,但引用dll而非lib。
接下來,我們將介紹如何使用QLibrary動態調用dll。
1. **創建庫**:在Qt Creator中,選擇「新建庫」,按照向導設置庫名稱和路徑。
2. **設置屬性**:選擇64位kit,確保選擇包含Qt庫,然後完成向導。
項目結構包括:
- 功能函數可放在類內部或外部。這里採用外部調用方式以直觀展示。
創建Mydll.h文件,使用外部C語言導出宏定義函數。
- 定義導出宏。
- 包含mydll_global.h。
- 編寫外部C語言導出的函數。
Mydll.cpp文件實現函數邏輯。
使用QMake構建項目,運行後會生成目錄下的dll文件,用於後續調用。
驗證dll是否正確導出函數,可以使用調試工具查看。
最後,新建Qt項目,按照向導設置,完成構建。
在項目中,為按鈕創建槽函數,實現加減法功能的調用。
通過QMainWindow.h和QMainWindow.cpp文件,為按鈕1編寫加法處理邏輯,QMake構建,運行程序,完成動態調用dll的加法功能。
『陸』 Qt 中如何使用動態庫.so文件或者靜態庫.a文件
用靜態的編譯好程序,把動態的放到程序運行時的目錄應該就會自動調用的
『柒』 QT中怎麼靜態編譯,靜態編譯的步驟是什麼。
Qt採用編譯的方式安裝的時候,配置中默認的編譯方式是動態編譯的,但是有時候你編寫的程序要發布出去,帶很多動態庫文件是很繁瑣的,此時就需要靜態編譯你的程序,Qt要實現靜態編譯必須庫文件也是靜態編譯的,所以在此介紹一下qt如何來進行靜態編譯第一步:下載源碼包Qt/X11版本:qt-x11-opensource-src-4.5.2.tar.gz第二步:解壓縮tarzxvfqt-x11-opensource-src-4.5.2.tar.gz第三步:進入到剛才解壓縮後的文件夾下並進行配置,如下./configure-release-platformwin32-msvc2008-static-nomakeexamples-nomakedemos-no-qt3support-no-scrip
...
by
fengyetang
2010-07-04
回復
(0)