qt自行编译第三方库

有时候在做qt项目的时候,在网上找不到自己所需的第三方库满足需求,而在开发过程中又经常需要使用到某一些功能时,可以尝试自己编译公共的第三方库,在项目需要时将其导入使用

常使用到的库分为静态库和动态库:

Windows:.lib(静态库),  .dll(动态库)

Linux:.so(动态库), .a(静态库)

静态库和动态库的区别:

首先需要理解什么是库:库就是提前写好的,完整的,可复用,可导入使用的已经被封装好的代码。在实际的大型项目开发之中,会使用很多的第三方库。

程序编译步骤:

所谓的静态和动态其实本质是指链接方式不一致,主要区别如下

1、链接阶段不一致:静态库对函数库的链接是放在编译时期完成的,动态库则是在程序运行时期进行链接的

2、目标文件:静态库与汇编生成的目标文件一起链接为可执行文件,程序在运行时与函数库再无瓜葛。动态库在程序编译的时候只有一个指向的位置,在程序运行的时候需要把动态库放置在自己指定的位置,所以一般使用相对位置,将动态库一起打包放在压缩包里面

3、加载速度不一致:静态库被打包到应用程序中加载速度更快,动态库还需要在运行时去寻找

4、资源:静态库内相同的库文件数据可能在内存中呗加载多份,耗费系统资源,浪费内存。动态库只需要指定给出一个文件数据的位置即可完成资源共享

好了,现在言归正传咯,qt编译第三方库:

第一步:新建c++库

后面就一直点下一步使用默认设置就好了

第二步:配置pro文件中的参数

第三步:使用左下角的锤子构建生成动态库

第四步:查看指定位置下生成的动态库(Linux(.so)生成了一个动态链接库文件和3个软链接)

接下来就可以在一个项目里面尝试导入自己编译的库调用函数啦

qt导入第三方库的三种方法

第一种:

第一步:使用qt自带的“导入外部库”快捷操作:

第二步:选择导入外部库

第三步:选择相应的路径,可在平台选项中选择自己所对应的平台,这里使用的是Linux

第四步:pro文件自动添加三方库导入语句:$$PWD指的是pro文件所在路径

第二种方法:手动编写路径LIBS += -L 库文件路径   -l库文件名称(可使用绝对路径)

INCLUDEPATH += 库文件所在路径

qt中DEPENDPATH和INCLUDEPATH的区别:

官方文档:INCLUDEPATH:指定编译项目时应搜索的#include目录,也就是用于查找包含的头文件

INCLUDEPATH:当某些头文件更改时,需要重新编译哪些源文件。如果修改文件夹 foo/ 中的头文件,并且 foo/ 未在 DEPENDPATH 中列出,则不会重新编译任何内容。如果 foo/ 在 DEPENDPATH 中列出,则将重新编译依赖于该标头的源文件。路径可以是相对于 .pro 文件的路径,也可以是绝对路径。

这两者的区别可以参考博客:Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别_qt includepath-CSDN博客

后续在使用的文件内导入头文件调用函数就可以啦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值