Qt動態鏈接庫的創建和使用

一、生成dll文件

1、創建一個C++庫項目。

  新建->Library->C++庫,然後點擊"choose";

  位置->類型,選擇共享庫;

  模塊的勾選看情況。

  最後,工程中有3個文件。mylib.cpp、mylib.h、mylib_global.h。

2、添加內容,即庫文件要實現的功能。

  例:1、創建一個ui文件

    2、修該mylib.cpp、mylib.h文件   

 

 1 #include "mylib_global.h"
 2 #include <QDialog>
 3 namespace Ui
 4 {
 5   class Mylib;
 6 }
 7 class MYLIBSHARED_EXPORT Mylib :public QDialog
 8 {
 9 public:
10   Mylib(QWidget *parent = 0);
11 private:
12   Ui::Mylib *ui;
13 };

 

 

1 #include "mylib.h"
2 #include "ui_mylib.h"
3 Mylib::Mylib(QWidget *parent):
4   QDialog(parent),
5   ui(new Ui::Mylib)
6 {
7   ui->setupUi(this);
8 }

 

3、構建工程,在生成的debug目錄中可以看到生成的3個,即.a、.o和.dll文件。

 

二、調用dll文件

1、修改準備調用dll'文件的工程的配置文件.pro

  #讓本項目可以找到mylib.h和mylib_global.h這兩個文件

  INCLUDEPATH += ../mylib

  #這一行則需要告訴編譯器(注意,這裏是編譯器!)到哪裏去找到這個 dll 文件

  #LIBS += ../build-mylib-Desktop_Qt_5_9_3_MinGW_32bit-Debug/debug/mylib.dll

2、將之前的dll文件放到本工程的源碼目錄下並加上頭文件#include "mylib.h",即可調用連接庫。

3、構建工程,將之前的dll文件放到生成的exe的同級目錄下,然後程序即可運行。

 

附:1、在構建第一個工程的時候,可以在彈出的一個對話框中修改dll等文件的生成目錄;我們可以新建目錄bin_debug,將2個工程的生成文件都放到其中。

  2、似乎可以#include "../bin_debug/mylib.h"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章