Qt Creator生成动态库并调用

 

目录

1.使用Qt Creator 生成动态库

2.使用第一步生成的动态库

3静态库的生成与调用

4.静态库与动态库的区别

4.1静态库特点及优缺点

4.2动态库特点及优缺点


1.使用Qt Creator 生成动态库

新建项目,选择Library --> C++ 库

  • image

选择共享库,项目名称为 TestDynamic

  • image

构建套件选择 MingGw64-bit

  • image

选择所需要的模块,直到新建项目完成

  • image

项目结构如右图1所示,包括 TestDynamic.pro 、testdynamic.h 、testDynamic_global.h和 testdynamic.cpp文件

在 testdynamic.h 文件中声明新函数 Sum(),在testdynamic.cpp中进行实现

testdynamic.h

  • image

testdynamic.cpp

  • image

,点击构建,会在项目的构建目录下生成 .a 文件 .dll 文件 和 .o文件,到此为止,就可以在其他项目中进行动态库文件的调用了。

  • image

2.使用第一步生成的动态库

新建一个项目,名称为MyTest

在项目源码文件目录下,新建 include 文件夹 和 lib 文件夹,分别用于存放 调用库所需的头文件和 .DLL文件

  • image

将第一步生成的 TestDynamic .dll 文件复制到 新建的 lib文件夹下,将testdynamic.h 、testDynamic_global.h复制到 新建的 include 文件夹下

  • image
  • image

MyTest.pro文件中添加 如下语句

  • image

加了第一句,新项目就可以使用 include 文件中的头文件,第二句是将库添加进来

在main.cpp文件中添加 testdynamic.h 文件,创建动态 库中类对象,并调用相关函数。

  • image

构建运行该项目,运行结果如下

  • image

通过调用动态库函数中的函数进行求和,得出正确的结果!

3静态库的生成与调用

  •  
    • 1.新建项目 选择 Library --> C++库,项目类型选择静态链接库。
    • 2.项目结构如图:
    • 3.在 staticLib.h文件中声明函数Sum(),求两数之和。
    • 4.在 staticLib.cpp文件中实现该函数。
    • 5.点击构建,即可在目标生成目录下生成 .a 文件和 .o文件,如图:
    • 6.将新生成的.a文件放在 目标程序目录中下的 lib文件夹,将staticLiv.h文件放在目标程序目录下的 include文件夹下
    • 7.在目标程序 MyTest.pro 文件中添加 LIBS += -L$$PWD/lib -llibstaticlib
    • 8.在主程序中加入 头文件并使用该库:
    • 9.运行得出结果如下:
  •  
  • 4.静态库与动态库的区别

    • 4.1静态库特点及优缺点

      • 一般名为 libxxx.a, windows下一般为libxxx.lib
      • 使用静态库时,函数库的所有数据都会整合到你的项目程序中。
      • 优点
        • 不在需要其他外部函数库的支持,因为所有的函数都被编译进去了。
        • 适合模块化和分工合作。
        • 库函数也可以重用。
      • 缺点
        • 程序编译之后的文件会比较大。
        • 静态库发生小改动,需要重新编译整个项目程序。
    • 4.2动态库特点及优缺点

      • 一般为 libxxx.so ,windows下会生成一个.Dll文件。
      • 使用动态库时,当程序执行到相关函数时,才会调用函数库中的函数。
      • 优点
        • 程序编译之后的可执行文件体积文件较小。
        • 动态库的改变不用重新编译链接程序,所以库的修改和升级比较方便。
        • 多个程序可以共享内存中的同一份库文件,节省资源。
      • 缺点:
        • 由于库文件没有被编译进程序中,所以程序不是一个自完备的程序,运行必须提供相应的库。

 

 

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值