QT5生成和使用静态库

一:静态库和动态库的区别

静态库和动态库的主要区别在于引用后使用的阶段。
静态库在编译的时候加载使用,运行的时候就不需要静态库了。
动态库又称为共享库,是在运行的时候加载使用的,所以在程序运行的时候还是需要动态库存在的。

二:QT5静态库的生成

在QT开发中有一些经常用的公用函数,我们没有必要每一次都在开发中再写一遍,只需要把他们编译成静态库,然后再需要的时候添加库,然后添加所需要的头文件,直接调用该函数就可以了,这样可以大大的增加开发中的效率。近期我就想开发出一个属于我自己的界面库,下次再开发界面的时候只需要添加库就可以了。好了废话到此为止,开始生成静态库。直接上图。

1、新建QT项目,选择library(库)—>C++库—->choose(选择)这里写图片描述

2、这里选择静态链接库,(共享库就是我们前面提到的动态链接库),输入静态链接库名字和创建路径。点击下一步。
这里写图片描述

3、这一步骤是选择编译库所用到的工具包,一般在安装qtcreator的时候就已经配置好了,不用管,直接下一步。
这里写图片描述

4、这一步用来选择你需要的模块,如果需要添加界面就需要勾选QtGUI 和QtWidgets,视你的库具体功能而定。选择好后点击下一步。
这里写图片描述

5、这一步是输入类名,是库中的第一个类的名字,不是库名。输入好之后点击下一步。
这里写图片描述

6、直接点击完成。
这里写图片描述

7、这个是生成的.pro文件,及其含义,接下来你就可以写代码了,想添加什么就添加什么类,然后选择生成库的release 或者 debug版本,点击项目查看生成库的路径,至此库就生成了。
这里写图片描述

三:静态库的使用

首先把刚才生成的静态库的.a文件,和源代码中的.h文件移动到一个新建的文件夹中。然后新建一个项目。在.pro文件界面点击右键如下图,选择添加库
这里写图片描述

选择外部库(所谓外部库,就是没有在你现在打开的项目树中的库),然后选择你程序运行的平台,之后就可以通过添加头文件的方式使用你的静态库了。还有什么疑问直接留言吧。
这里写图片描述

平台选择图

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
下面是一个简单的示例,演示如何在 Qt 中编写一个静态库,并在另一个项目中使用它。 1. 创建一个新的 Qt 库项目 打开 Qt Creator,选择 “文件” -> “新建文件或项目”,在 “应用程序和库” 类别下选择 “Qt 库” 项目模板,然后按照向导的指示创建一个新的 Qt 库项目。在本例中,我们将项目命名为 “MyLib”。 2. 编写库代码 在 “MyLib” 项目中,打开 “mylib.h” 文件并添加以下代码: ```cpp #ifndef MYLIB_H #define MYLIB_H class MyLib { public: static int add(int a, int b); }; #endif // MYLIB_H ``` 然后在 “mylib.cpp” 文件中实现 `MyLib::add()` 方法: ```cpp #include "mylib.h" int MyLib::add(int a, int b) { return a + b; } ``` 3. 构建库 在 Qt Creator 中,选择 “构建” -> “构建解决方案”(或者按下快捷键 Ctrl + B)来构建库。构建完成后,将在 “MyLib” 项目目录下的 “libMyLib.a” 或 “MyLib.lib” 文件中找到生成静态库。 4. 创建一个新的 Qt 控制台应用程序项目 选择 “文件” -> “新建文件或项目”,在 “应用程序和库” 类别下选择 “Qt 控制台应用程序” 项目模板,然后按照向导的指示创建一个新的 Qt 控制台应用程序项目。在本例中,我们将项目命名为 “MyApp”。 5. 配置项目 打开 “MyApp.pro” 文件,添加以下行: ``` INCLUDEPATH += $$PWD/../MyLib LIBS += -L$$PWD/../MyLib -lMyLib ``` 这些行会告诉 Qt 编译器在编译 “MyApp” 项目时在 “MyLib” 项目的头文件目录中查找头文件,并在链接时使用 “MyLib” 静态库。 6. 编写代码并测试 打开 “main.cpp” 文件,并添加以下代码: ```cpp #include <QCoreApplication> #include "mylib.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); int sum = MyLib::add(1, 2); qDebug() << "1 + 2 =" << sum; return a.exec(); } ``` 这里,我们调用了 `MyLib::add()` 方法来计算 1 和 2 的和,并使用 `qDebug()` 输出结果。 然后按下 F5 键来构建并运行项目。如果一切正常,控制台应用程序将会输出 “1 + 2 = 3” 的结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值