【Qt专栏】Qt创建和调用动态链接库

编程入门 行业动态 更新时间:2024-10-07 15:29:54

【Qt专栏】Qt创建和调用<a href=https://www.elefans.com/category/jswz/34/1757604.html style=动态链接库"/>

【Qt专栏】Qt创建和调用动态链接库

文章目录

  • 一、创建动态链接库
  • 二、调用动态链接库
    • 调用方式一(推荐使用)
    • 调用方式二


提示:Qt版本为Qt5.9.6

一、创建动态链接库

  1. 单击“文件”后,单击“新建文件项目”菜单项。
  2. 选择“Library”后选择“C++库”,然后点击“选择”。
  3. 类型选择“共享库”,名称自定义,路径自己选择,完成以上后点击“下一步”。
  4. 这里编译工具我选择默认,点击“下一步”。Qt MinGW与MSVC对比
  5. 默认选择“QtCore”模块,然后点击“下一步”。
  6. 类名默认会和DLL的名称一致,可自行修改,点击“下一步”。
  7. 版本控制系统默认是“None”,这里有“Git”项是我电脑上安装了Git,点击“完成”。
  8. 点击最左侧“项目”项,在“编译构建配置”处把相应的“Shadow build”勾去掉,这样构建目录会生成在当前DLL的目录下。
  9. 创建完成后会自动生成以下文件。

一个共享库导出给用户使用的类,符号,函数等都需要用宏 Q_DECL_EXPORT 来定义导出,一个使用共享库的应用程序需要通过 Q_DECL_IMPORT 导入共享库的可用对象。

  1. 自行添加接口,这里我接口添加如下,编译工具使用MINGW 32bit,release模式下进行编译。

1:若使用MSVC编译,编译后会生成“库名称.dll”和“库名称.lib”两个文件,“库名称.dll”在运行应用程序时调用,“库名称.lib”在应用程序隐式调用DLL时使用。
2:若使用MinGW编译,编译后会生成“库名称.dll”和“lib+库名称.a”两个文件,“库名称.dll”在运行应用程序时调用,“lib+库名称.a”在应用程序隐式调用DLL时使用

  1. 按“ctrl+r”键后出现如下图,恭喜你,一个简单的DLL创建成功了。

二、调用动态链接库

调用方式一(推荐使用)

  1. 新建一个项目后,在项目所在目录下新建一个 lib 目录,将上述生成的库和头文件添加到 lib 目录下,如下图。
  2. 回到QtCreator创建的项目中,点击最右侧的项目一栏,然后在构建设置下去掉 “Shadow build” 的勾选项,让exe生成到当前项目的路径下。
  3. 在 “项目名称.pro” 文件中,指定库路径(注意在LIBS一行,记得在库名称“Calculator”前加-l)

调用方式二

  1. 新建一个项目,右击项目名称后,选择“添加库”项。
  2. 勾选“外部库”,点击“下一步”。
  3. 库文件选择“浏览”,找到你创建的动态链接库位置。
    这里为我的DLL文件位置,仅供参考
  4. 点击“完成”。
  5. 点击“项目名称.pro”文件,会自动添加如下内容。
  6. 添加库里的头文件,右击项目“执行qmake”和“构建”,“ctrl+r”运行项目后,会出现如下错误。

    解决:在“项目名称.pro”文件里,按如下图操作,因为包含的头文件不在release目录下。
  7. 测试上面的动态链接库操作如下视频所示,仅供参考哈。


更多推荐

【Qt专栏】Qt创建和调用动态链接库

本文发布于:2024-03-23 15:09:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1739606.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:动态链接库   专栏   Qt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!