前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qt如何使用第三方库

Qt如何使用第三方库

作者头像
用户10551528
发布2024-08-05 10:29:19
1240
发布2024-08-05 10:29:19
举报
文章被收录于专栏:浴巾的学习分享贴

1.获取库的.dll和.lib(或.a)

在资源管理器中找到对应库的.dll和.lib(或.a)

如果第三方库不是Qt生成的:

通常比较规范的第三方库,有libinclude两个文件夹。lib文件夹就是包含的库文件。include则包含头文件。

如果第三方库是Qt生成的:

(通过Qt创建库的方法请见另一篇文章)

第三方库的构建时可以选择构建套件(Kit):

使用的MSVC编译:编译后会生成.dll.lib两个文件。.dll在运行应用程序时调用,.lib在应用程序隐式调用动态链接库时使用 使用MinGW编译:编译后会生成.dll.a两个文件,.dll在运行应用程序时调用,.a在应用程序隐式调用动态链接库时使用 注意,如果一个项目中使用了第三方库,构建项目时使用的套件,必须与使用的第三方库构建使用的套件一致,否则会报错”link1104“错误 即如果第三方库用的MinGW编译,项目中添加的库文件是.a,那么项目构建的时候,也是用MinGW编译才可以通过

构建时可以选择套件、构建的位置,如果选择了Debug,则应该到中间文件目录的Debug文件夹下去找构建后的库: 中间文件目录会生成到项目文件的同级目录下:

2.获取库的头文件

在资源管理器中找到对应库的头文件

如果第三方库不是Qt生成的:

一般就存在于第三方库的include文件夹下

如果第三方库是Qt生成的:

头文件存在于项目目录下

3.在项目中添加该库文件 及 相关头文件

方法一:不拷贝(推荐)
添加库

右击项目,选择“添加库”

或者打开.pro文件,在空白处右击鼠标,选择添加库

点击库文件的“浏览”,库的.a文件。如果库是Qt生成的,则找到对应的中间文件目录的debug目录或者release目录,找到对应的.a文件。

添加库的头文件路径

点击“包含路径”后面的“浏览”

找到库的项目目录(如果库是Qt构建的),选中,然后点击右下角选择文件夹

因为Qt的头文件在项目目录下

完成之后,确定剩余的勾选项,然后一直下一步,直到结束

关于勾选项: 平台:如果不是Linux和mac平台,可以只选Windows 链接:根据需求选择,可以直接选动态 Windows下的选项: 因为当前使用的库并不是存在于中间文件目录的debug或release子目录下,而是复制到了工程目录下,所以不勾选 “为debug版本添加’d’作为后缀”建议不勾选(勾选了之后在.pro文件中会在库名后加一个d,构建时容易报错“找不到库文件”,如果勾选上,在.pro将d删除即可

​ “移除release版本中的’d’后缀”不勾选

此处可以查看一下项目的.pro文件,里面有和库有关的配置信息: 在添加完库之后,.pro文件中会新生成几行:

其中LIBS是确定库的所在位置(-L),以及库名(-l) INCLUDEPATH是指定头文件的搜索路径 DEPENDPATH用于指定项目中的源文件所依赖的头文件的搜索路径 (二者区别见Qt构建中DEPENDPATH和INCLUDEPATH区别

使用库

现在就可以使用库了,本例中使用的des.h即为库中的头文件

方法二:拷贝
将库文件拷贝到当前项目下,新建目录

在工程目录下创建一个新的文件夹(此处取名lib,随意),将库的.dll.a复制进去(此处以.a为例)

将库的头文件拷贝到当前项目下,新建目录

在项目目录下新建文件夹(此处取名include,随意),将库头文件拷贝进来(如果多个头文件,建议全部拷贝,因为可能互相包含)。

在Qt Creator中,右击项目中的Header文件夹,点击“Add Existing Directory”(也可以选择“添加现有文件”但是是单文件添加,效率低)

选择当前项目目录下的include文件夹

稍等片刻,项目中就添加完成了,同时.pro文件中也更新了配置

添加库和头文件路径

在Qt Creator中右击项目名,点击添加库

或者,打开项目的.pro文件,右击空白处,点击添加库

选择“外部库”

点击“库文件”右侧“浏览”

找到刚在工程目录下创建的lib文件夹下的.a文件,选中打开即可

完成后会发现“包含路径”一栏已经自动填充,而且是自动选择了项目目录下的include目录,即刚才拷贝过来的库头文件

关于勾选框,左下如果没有特别情况,只勾选Windows即可。右侧Windows中,“debug或release子目录下的库”,如果是Qt生成的库,可以选上。“为debug版本添加’d‘作为后缀”不勾选。(详细看方法一此处介绍)

之后一路点击“下一步”即可。

使用库

此时就可以使用库了,在引入头文件的时候,可以写相对路径,也可以不写

构建一下,通过,可以正常使用

方法三:其他方式(不太推荐)

比如不在添加库时指定头文件目录,而是添加库后,在项目中添加现有文件夹(Add Existing Directory),在调用使用头文件时,使用绝对路径的方式

在Qt Creator中,右击项目中的Headers文件夹,选择“Add Existing Directory”(也可以选择“添加现有文件”但是是单文件添加,效率低)

点击“浏览”,找到库(如果是Qt库,则找到该项目文件夹),选择(而不是进入),点击“选择文件夹

然后点击”Start Parsing“,更新目录范围,点击三角图标,展开目录

然后在下面栏中使用通配符*进行筛选,点击Apply Filters,即可选中所有.h文件

按下OK,即可添加完毕 项目的.pro文件中也更新了配置

在使用时,不能直接引用头文件原名,否则查找不到:

需要写上绝对路径或者相对路径,相对路径写法可以参考.pro文件中的:

构建一下,通过,可以正常使用

4.写在后面:

还是老生常谈的问题:

如果一个项目中使用了第三方库,构建项目时使用的套件,必须与使用的第三方库构建使用的套件一致,否则会报错”link1104“错误

即如果第三方库用的MinGW编译,生成的库文件包含的是.a,项目中添加的库文件是.a,那么项目构建的时候,也是用MinGW编译才可以通过 如果第三方库用的MSVC编译,生成的库文件包含的是.lib,项目中添加的库文件是.lib,那么项目构建的时候,也是用MSVC编译才可以通过

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.获取库的.dll和.lib(或.a)
    • 在资源管理器中找到对应库的.dll和.lib(或.a)
      • 如果第三方库不是Qt生成的:
      • 如果第三方库是Qt生成的:
  • 2.获取库的头文件
    • 在资源管理器中找到对应库的头文件
      • 如果第三方库不是Qt生成的:
      • 如果第三方库是Qt生成的:
      • 方法一:不拷贝(推荐)
      • 方法二:拷贝
      • 方法三:其他方式(不太推荐)
  • 3.在项目中添加该库文件 及 相关头文件
  • 4.写在后面:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档