1. 首先新建一個工程(該篇文章共有兩個不同的工程,注意區分,一個是有UI界面的,一個是沒有UI界面的)
2.接下來選擇庫模板
3.選擇共享庫,取個該動態鏈接庫的名字,下一步
4.繼續下一步,到Modules界面,默認選擇QtCore(QtCore模塊提供核心的非圖形用戶接口功能,所有其他Qt模塊都依賴於這個模塊,如果您使用qmake來構建您的項目,則默認將QtCore包含在內,詳情請訪問 https://blog.csdn.net/u012309854/article/details/77680116)。
相信,大部分人封裝動態鏈接庫的時候是不需要將界面封裝的,只需要封裝核心代碼,故我們在此不選擇QtGui。但如果需要將圖形界面一起封裝,就需要選擇該項,如下結果。
5.繼續下一步,直到點擊完成。
6.點擊項目,勾掉Shadow build,使.dll不生成在debug目錄中,生成在我們自己創建的目錄下面,方便查找和使用。
7.在.pro文件中,添加如下代碼
DESTDIR =..\MyDebug
使生成的.dll文件放在該目錄下,自動創建該目錄。
8.點擊運行,即可生成。(此彈框不用管它,代表編譯成功,已生成文件)
9.調用方法有兩種:
(1)在.pro文件中,添加如下代碼,並將Save_Data.h 添加到工程項目中(這步應該都會,添加現有文件),需要用到該動態鏈接庫的地方就 #include 進去。需要注意的一點就是:需要把以上生成的文件放置到生成的E:\cpptest\build-test_dll-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug 目錄下。
LIBS += libgdi32#這個也不能少。少了會出錯
win32:LIBS += "E:/cpptest/MyDebug/Save_Data.dll"
win32:LIBS+= -LE:/cpptest/MyDebug/ -lSave_Data
(2)在.pro文件中,添加如下代碼,並將Save_Data.h 文件放置在與工程文件同目錄文件中,需要用到該動態鏈接庫的地方就 #include 進去。比如我的,看圖一目了然:
DESTDIR =..\MyDebug
INCLUDEPATH +=../camara
LIBS += -L$$DESTDIR -lcamara
另外,再粘貼一個測試成功的鏈接,按照該方法也是能成功的,就是稍微復雜一點
---------------------
原文:https://blog.csdn.net/u011236602/article/details/80835575