一、创建项目
1、创建项目
New -> Application -> Qt Console Application -> Choose
由于是测试项目,这里选择控制台应用,快速且方便查看

2、项目名称
这里的项目名称:DllConsole,之后一直默认选择点击下一步


3、语言选择
语言可以选择中文或者不选择,这里默认选择为None

4、选择编译器
编译器这里默认选择全部,推荐默认全选

5、版本控制
需要Git同步代码则选择Git配置,否则默认为None

二、添加动态链接库
1、拷贝文件
上文提到的生成动态链接库的三个重要文件 .dll文件、.h文件、_global.h文件
将这三个文件拷贝到项目的根目录中

2、查看文件
将这三个文件拷贝到当前项目的目录下,拷贝后项目目录文件如下

三、配置动态链接库(重点)
1、三种配置语法
(1)绝对路径写法(windows环境)
# 绝对路径写法
LIBS += -L"F:\C++WorkSpace\Qt\Qt5.14.1\DllConsole" \
-lInitDll
(2)相对路径写法(windows环境)
# 相对路径写法
LIBS += -L$$PWD/./ -lInitDll
(3)标准路径写法(Linux和windows环境)
# Linux环境下写法
unix|win32: LIBS += -L$$PWD/ -lInitDll
#unix|win32: LIBS += -L$$PWD/./ -lInitDll
2、语法规则介绍
例如:LIBS += -L"pathdir" -lfilename
(1)pathdir:指的是 dll 文件所在的目录
pathdir可以是绝对路径也可以是相对路径
绝对路径的写法和windows或者Linux下的写法一致
(2)$$PWD/: 指的项目的根目录
./ 也代表的是项目的当前目录
../ 代表当前目录的上一级目录
(3)filename:指的是 dll 文件的文件名称
比如我的dll文件名称是 InitDll.dll
那么filename就应该是 InitDll 这里要求大小写一致
3、取消编译目录
如果想要编译文件和源文件在同一个目录,则点击 Shadow build勾选框取消勾选

四、调用动态链接库
main.cpp
#include
#include "initdll.h"
#include
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "111111111";
InitDll init;
QString str = init.print("hello world!");
qDebug() << str;
int n ;
n = init.add(1,2);
qDebug() << n;
return a.exec();
}
五、构建项目
鼠标右击项目,点击构建

构建完之后,在项目目录下可以发现生产了 .exe 文件则表示构建成功

六、运行项目
鼠标右击项目,点击运行

七、运行结果
