本教程說明了在windows上的應用程式中使用自定義庫的不同方法。第一部分說明了如何建立共享庫以及如何在應用程式中鏈結共享庫。第二部分是關於建立和使用靜態庫。建立要鏈結的共享庫時,需要確保在建立庫時正確匯出將在庫外部使用的符號。當您鏈結到庫時,隨後匯入。可以使用
q_decl_export和q_decl_import
來完成,如以下示例所示:
1、test.h
#include
#if defined make_test_lib
#define test_lib_export q_decl_export
#else
#define test_lib_export q_decl_import
#endif
class test_lib_export widget :
public qwidget
;
2、test.cpp
#include
"test.h"
#include
widget::
widget
(qwidget *parent)
:qwidget
(parent)
3、test.pro
template = lib
sources +
= test.cpp
headers +
= test.h
defines +
= make_test_lib
qt +
= widgets
.a和.so是導入庫。它們有助於將您的**鏈結到庫,並且在您構建檔案(不是一直都是檔案)時需要使用它們。
1、loadtestlib.pro
target =
dependpath +=.
../testlib
includepath +=.
./testlib
libs +
=-l.
./testlib/debug -ltestlib
#input
sources +
= main.cpp
2、main.cpp
#include
"test.h"
intmain
(int argc,
char
*ar**)
或者,您可以在qt creator中右鍵單擊您的專案,然後選擇「新增庫…」,選擇「外部庫」並瀏覽您的庫檔案:
對於在windows中使用mscv編譯器編譯的庫,請查詢.lib或.dll
在windows上,mingw編譯的鏈結庫位於.a中,但您需要手動新增(自qt creator 2.7起)。您也可以嘗試直接鏈結.dll,因為它可能會起作用。不要嘗試使用msvc編譯庫。
在linux上,您尋找.so檔案
這會將以下**附加到您的* .pro檔案中:
ps:
unix:libs +
=-l /usr/local/lib -lmath
win32:libs +
= c:/mylibs/math.lib
win32:libs +
=「 c:/ mylibs / extra libs / extra.lib」
unix:libs +
=「 -l / home / user / extra libs」 -lextra
如何建立Qt外掛程式
qt提供了兩個用於建立外掛程式的api 編寫擴充套件qt本身的外掛程式是通過對相應的外掛程式基類進行子類化,實現一些功能以及新增巨集來實現的。通過外掛程式不僅可以擴充套件qt本身,而且可以擴充套件qt應用程式。這要求應用程式使用qpluginloader檢測和載入外掛程式。在這種情況下,外掛程式可以...
Qt之建立並使用共享庫
在 windows 中,有動態鏈結庫 dll dynamic link library 在 linux 中,有共享庫 shared library 它們是相同的!由於平台和編譯器的差異,輸出的庫檔案也不同 要建立乙個共享庫,需要執行以下幾個步驟 檔案 新建檔案或專案,選擇 library c 庫 選...
安裝python3 5並在QT中配置使用
一 安裝32位的python3.5及各種庫 提取碼 zotf 先在dos環境下輸入python,如果顯示版本則表示python安裝成功,安裝庫檔案的時候,在dos環境下進入whl檔案所在的目錄,然後使用pip install whl。如果提示pip版本過低,則按照提示更新pip。二 在qt中配置py...