Qt 创建与使用动态库与静态库

本文介绍了在Qt环境下如何创建和使用静态库与动态库。通过示例详细讲解了静态库libJinTaiKu.a的生成及在test工程中的应用,同时探讨了共享库(动态库)的优势,如动态加载和升级便利性,并展示了如何创建Qt共享库以及在另一个工程中调用动态库DongTai.dll的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Qt 使用动态库与静态库

  环境:  windows XP, Qt4,QtCreator,MingGw

源代码下载  http://download.youkuaiyun.com/detail/cibiren2011/9119827

一. 静态库的生成

    1. 测试目录: JinTaiKu
    2. 源码文件名: jintaiku.h, jintaiku.cpp 
    3. 编写项目文件: JinTaiKu.pro
       注意两点:
       TEMPLATE = lib
       CONFIG   += staticlib
    4. 生成Makefile:
       qmake
    5. 编译生成静态库libJinTaiKu.a
       make

二. 静态库的使用
    1. 测试目录: test   
    2. 编写main.cpp, 包含头文件JinTaiKu.h, 并调用JinTaiKu 类
    3. 编写项目文件: test.pro
       注意加上库路径与库文件名:    
    LIBS+=-L../JinTaiKu/debug    -lJinTaiKu
    4 编译运行test    

QT中共享库的生成与使用

如果你打开一些 Windows 应用程序的目录,你会发现有很多程序的 exe 文件都很小,大约几百K 的样子,并且目录中不仅仅只有一个 exe 文件,还包含着一大堆 dll 文件。这些 dll 其实就是一些共享库,所谓共享库,其实就是一些动态链接库,能够由程序在运行时进行动态加载的库。既然说是共享,那就是说,这些库不仅仅自己的程序可以使 用,并且其他程序也可以使用,例如某些通用算法。如果你发布一下自己编写的 Qt 程序,也会看到很多系统的共享库,就是那些 QtGui.dll 之类的东西。或许你会说,我写的程序没有同其他应用共享的库,就不需要这些了吧!其实不然。因为共享库的一个好处是可以动态加载,也就是说,如果你需要升 级程序,那么就要简单的替换掉这个 dll 就好了,不需要要求用户重新安装全部文件。当然,这些 dll 也是有缺点的:动态加载的东西肯定会比静态编译的东西效率低一些。不过在现在的硬件环境下,这点性能损失已经可以忽略不计了。

今天我们要说的就是如何用 Qt 创建共享库代码。

我们还是使用 QtCreator。在创建工程的时候,我们选择下面的 C++ Library 一项,然后点击 OK。

在接下来的对话框中,有一个下拉列表,分别是 Shared Library(共享库),Statically Linked Library(静态链接库)和 Qt 4 Plugin(Qt 4 插件)。我们选择第一个共享库,后面的步骤中会要求选择加入哪几个 Qt 模块,和前面一样,选择自己需要的部分,最后完成工程的创建。

我们会看到 QtCreator 已经帮我们创建好了一些文件。其中有一个 {projectName}_global.h 的文件是 QtCreator 替我们创建的。下面我们就从这个 {projectName}_global.h 开始:

 
 
 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值