windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。

这篇具有很好参考价值的文章主要介绍了windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

这里主要是讲述windows下qt使用第三方库。



前言

windows下qt使用第三方库(静态链接库lib)。

为了能够使测试更准确,首先自己用qt创建了一个已经封装好的lib库。
然后让另一个项目去链接这个lib静态库,并且去调用里面的方法。


一、准备工作

目的:
使untitled项目能够使用myllplib.lib静态库,这样untitled项目就可以使用myllplib.lib库里面的函数。

myllplib项目:
这里只写了一个void show()方法,用来测试untitled项目是否能够成功调用show()函数,如图:
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。

二、链接lib静态库

把生成的myllplib.lib库还有需要用到的函数头文件myllplib.h,放到untitled项目下的include目录下。

这里库和头文件路径不唯一,但是要保证untitled项目能够识别到其路径位置,我放的的untitled项目中的include路径下。

1. 配置

1. 添加库
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。
2. 外部库
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。

3. 完成设置
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。
4. 自动更新untitled.pro文件
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。

这里要把库对应的头文件路径设置到INCLUDEPATH能够识别的到地方。就是myllplib.h头文件的路径位置。我放的是include目录

2.测试

添加头文件#include "myllplib.h"、并调用myllplib.lib里面的函数
windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。

windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。
总结:
把第三方lib库、头文件,放到指定的路径中(我这里是全部放到了untitle项目的include目录下),要保证untitled项目能够找到lib库和头文件。


三、静态库和动态库区别

3.1 静态库和动态库的基本概念

静态库,是在可执行程序连接时就已经加入到执行码中,在物理上成为执行程序的一部分;使用静态库编译的程序运行时无需该库文件支持,哪里都可以用,但是生 成的可执行文件较大。
动态库,是在可执行程序启动时加载到执行程序中,可以被多个可执行程序共享使用。使用动态库编译生成的程序相对较小,但运行时需要库 文件支持,如果机器里没有这些库文件就不能运行。

3.2 如何使用动态库

如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置。

  1. linux的可执行程序在执行的时候默认是先搜索/lib/usr/lib这两个目录,然后按照/etc/ld.so.conf里面的配置搜索绝对路径。
  2. 同时,Linux也提供了环境变量LD_LIBRARY_PATH供用户选择使用,用户可以通过设定它来查找除默认路径之外的 其他路径:

如查找/work/lib路径,你可以在/etc/rc.d/rc.local或其他系统启动后即可执行到的脚本添加如下语句:LD_LIBRARY_PATH =/work/lib:$(LD_LIBRARY_PATH)。并且LD_LIBRARY_PATH路径优先于系统默认路径之前查找(详细参考《使 用 LD_LIBRARY_PATH》)。

不过LD_LIBRARY_PATH的设定作用是全局的,过多的使用可能会影响到其他应用程序的运行,所以多用在调试。(LD_LIBRARY_PATH 的缺陷和使用准则,可以参考《Why LD_LIBRARY_PATH is bad》 )。通常情况下推荐还是使用gcc的-R或-rpath选项来在编译时就指定库的查找路径,并且该库的路径信息保存在可执行文件中,运行时它会直接到该路 径查找库,避免了使用LD_LIBRARY_PATH环境变量查找。

3.3 库的链接时路径和运行时路径

现代连接器在处理动态库时将链接时路径(Link-time path)和运行时路径(Run-time path)分开,用户可以通过-L指定连接时库的路径,通过-R(或-rpath)指定程序运行时库的路径,大大提高了库应用的灵活性。比如我们做嵌入式 移植时#arm-linux-gcc $(CFLAGS) –o target –L/work/lib/zlib/ -llibz-1.2.3 (work/lib/zlib下是交叉编译好的zlib库),将target编译好后我们只要把zlib库拷贝到开发板的系统默认路径下即可。或者通过- rpath(或-R )、LD_LIBRARY_PATH指定查找路径。

共享库原文链接文章来源地址https://www.toymoban.com/news/detail-416084.html

到了这里,关于windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT 使用第三方库QtXlsx操作Excel表

    一直以来,都想学习一下C/C++如何操作excel表,在网上调研了一下,觉得使用C/C++去操作很麻烦,遂转向QT这边;QT有一个自带的类 QAxObject ,可以使用他去操作,但随着了解的深入,觉得他并不是很好,有很多其他缺陷(例如必须电脑安装了办公软件才可以进行操作等),所以继

    2024年02月15日
    浏览(48)
  • springboot引入第三方jar包本地lib并打包 亲测可用

    一、在项目根目录创建lib目录并放入第三方lib包 : 二、pom中引入第三方lib system表示依赖不是由maven仓库,而是本地的jar包 ${pom.basedir}/lib/commons-io-2.6.jar指向jar包位置即可 ${pom.basedir}表示项目根目录 三、将第三方lib也打入jar包

    2024年01月25日
    浏览(50)
  • 学习记录654@搞定python安装TA-Lib第三方库

    TA-Lib是量化投资比较重要的一个包,用于生成技术指标,比如均线,MACD,RSI等,安装还是遇到点小问题。 首先我去 https://pypi.org/project/TA-Lib/ 官方的第三方库网址倒找这个包,然后按照他的提示进行下载,是的,使用的是很暴力的方式: pip install TA-Lib 很遗憾,报错: ERROR:

    2024年02月04日
    浏览(56)
  • 鸿蒙加载第三方动态链接库(.so)文件

    在没有正确引用so文件情况下会报出上述错误,正确姿势应该如下 在Android的写法是在main目录下创建jniLibs,然后.so文件复制进去即可,但是在鸿蒙里面要在libs/内放置arm64-v8a和armeabi-v7a两个文件夹的so文件,然后在build.gradle文件 加多一个.so的描述 即可使用

    2024年02月13日
    浏览(37)
  • SpringBoot打包成WAR包的时候把第三方jar包打到LIB文件夹下和把第三方jar包打入到SpringBoot jar包中

    转载 首先我们应该知道我们把 SPRINGBOOT 项目打包成WAR包和JAR包的时候分别需要何种插件 我们最常用的把 springBoot 打成jar包的插件是下面这样的一个插件,这是把我们的 springBoot 项目打包成为一个可执行 jar 的插件 把 springBoot 项目打包成一个war包的插件是下面这样的一个插件

    2024年02月07日
    浏览(53)
  • Windows下载安装vcpkg并使用它来安装第三方库(visualstudio)

    1.使用Git下载vcpkg仓库( 下载比较慢,个人比较喜欢打开下面网址然后用迅雷下载,速度飞快 ) 2.下载好之后解压打开文件夹,双击bootstrap-vcpkg.bat文件,如果成功的话会在文件夹里生成一个vcpkg.exe文件。( 可能会出现窗口闪退导致没有生成exe文件,开启科学上网就可以解决

    2024年01月18日
    浏览(51)
  • 现代CMake高级教程 - 第 5 章:链接第三方库

    双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 案例 使用 tbb 库 main.cpp 直接链接 tbb CMakeLists.txt 直接链接 tbb 的缺点: 如果这样直接指定 tbb,CMake 会让链接器在系统的库目录里查找 tbb,他会找到 /usr/lib/libtbb.so 这个系统自带的,但这对于没有一个固定库安装位置的

    2024年02月02日
    浏览(55)
  • Qt添加第三方字体

    最近开发项目时,据说不能用系统自带的微软雅黑字体,于是找一个开源的字体,思源黑体,这个是google和Adobe公司合力开发的可以免费使用。本篇记录一下Qt使用第三方字体的方式。字体从下载之家下载http://www.downza.cn/soft/266042.html。下载解压后有8种字体 代码实现 运行效果

    2024年02月16日
    浏览(70)
  • 【配置环境】Windows下C/C++第三方库管理工具vcpkg安装和使用

    目录 一,环境准备 二,vcpkg简介 三,Window系统下载vcpkg 四,Linux系统下载vcpkg 五,vcpkg命令介绍 1.命令参照表 2.常用的vcpkg命令以及详细解释 Git - Downloads 根据平台下载最新版本(傻瓜式安装) Visual Studio 2015 或更新的版本( 包含英文语言包 ),点击VS界面菜单栏的 工具-获

    2024年02月16日
    浏览(46)
  • 第三方开发工具—PyCharm(安装、使用、汉化)超详细、图超多、注脚特多(Windows操作系统)

    目录 前言 一、PyCharm安装 安装地址 安装步骤 二、第一次启动 三、使用(开始编程) 1.第一个文件夹 2.第一个程序 3.运行第一个程序 四、汉化插件 五、总结 做任何事情时,舒适的环境是非常重要的。一个好的软件开发环境能给人带来不一样的体验。 先让我们来看看PyCharm的

    2024年02月03日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包