qt 动态库的创建和使用教程(step by step)

  • Post author:
  • Post category:其他


一般大型项目中, 会将实现特定功能的函数或类, 封装成链接库, 供应用程序代码调用. 下面我将一步步教你如何在qt 中创建动态库, 并使用它.



创建多子目录项目

  • 首先创建一个多子目录项目(即含有多个项目的工程, 类似于VS中的解决方案)

    在这里插入图片描述
    – 输入项目名称, 选择创建路径. 比如”demo”.

在这里插入图片描述

  • 选择编译工具, 这里MSVC, MinGW 均可.

在这里插入图片描述
– 完成&添加子项目.

在这里插入图片描述



创建动态链接库

  • 选择 “Library” | “C++ Library”.

    在这里插入图片描述
    – 输入库的名称.

    在这里插入图片描述
    – 选择 “qmake”.

在这里插入图片描述
– 类型设置为共享库, “Qt module”根据库的功能设置为Core, Widget, 或其他.

在这里插入图片描述
– 编译工具选择, 所有的子项目均选择相同的编译工具.

在这里插入图片描述
– 完成即可.

在这里插入图片描述



编辑链接库内容

  • 打开 “mydll.pro”, 添加内容:

    DESTDIR = ../

    (指定目标文件的输出位置)

    在这里插入图片描述
  • “mydll.h”的类声明中添加函数声明.

    在这里插入图片描述
  • 在”mydll.cpp”中添加函数的定义.

    在这里插入图片描述



创建应用工程并连接动态链接库

  • 在顶层项目”demo”上右键选择 添加新子项目.

    在这里插入图片描述
  • 选择: “Application(Qt)” -> “Qt Widgets Application”

    在这里插入图片描述
    – 输入子项目名称, 比如:“app”

    在这里插入图片描述
  • 选择构建系统为:“qmake”

    在这里插入图片描述

    在这里插入图片描述
    选择编译工具, 所有的子项目均选择相同的编译工具.

    在这里插入图片描述
    – 完成.

    在这里插入图片描述
    – 打开”app.pro”, 添加内容:
LIBS += ../mydll.lib

DESTDIR = ../


LIBS

指定要链接的库名称, 因为在”mydll.pro”中指定了目标文件路径为”…/“, 所以, 库名称为”…/mydll.lib”

在这里插入图片描述

  • 编辑”mainwindow.cpp”, 添加如下内容, 调用动态链接库中的函数.

    在这里插入图片描述
  • 构建项目.

在这里插入图片描述

  • 如果能够构建成功, 动态库的创建和使用应该是没问题的.
  • 接下来, 运行我们的工程. 在应用程序输出窗口, 可以看到打印信息.

在这里插入图片描述


注意:

修改

DESTDIR

很重要, 将所有链接库的和应用程序输出的目标文件都指定到”…/”, 这样运行应用程序时就不会出现找不到动态链接库的情况.



版权声明:本文为falwat原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。