目录
1.在"usr/lib/x86_64-linux-gnu"目录找到.so与.a文件
2.libxx.so文件与libxx.so.x.x.x文件的区别与联系
3.对于2中第四点的示例(链接库时,只能选择.so文件或者.a文件):
背景:
由于项目要在不同的计算机(Ubuntu系统)之间进行迁移,项目所依赖的第三方库(包括动态链接库以及静态链接库)在其他的计算机上并不一定存在,因此,打算将第三方库放入项目的工程目录下,在项目链接第三方库时,使用工程目录下的第三方库。
运行环境:
Ubuntu 16.04 LTS,Qt5.10.1,C++
获取第三方库的文件
1.可以从网上找资源下载(官网,论坛等等,建议官网)
2.从ubuntu系统中获取
.a文件与.so文件一般在"usr/lib/x86_64-linux-gnu"目录下。.h文件一般在“usr/include”目录下。
.a文件,是LINUX系统中的静态链接库文件。
从Ubuntu系统中获取.so文件与.a文件
1.在"usr/lib/x86_64-linux-gnu"目录找到.so与.a文件
此处显示在本机libtiff库的.so与.a文件,如下所示
2.libxx.so文件与libxx.so.x.x.x文件的区别与联系
目录"usr/lib/x86_64-linux-gnu"中libtiff库相关的有libtiff.so和libtiff.so.5.2.4.这两个文件的区别与联系如下图所示。
1..so或者.so.x.x.x有可能是“共享库”,也有可能是“到共享库的链接”。
2.真正系统中需要的是“共享库”,不需要“到共享库的链接”。
3..so文件与.so.x.x.x文件可以重命名,比如.so.x.x.x可以重名为.so文件。
4.qtcreator中打开项目,链接库时,只能选择.so文件或者.a文件,不能选择.so.x.x.x文件
3.对于2中第四点的示例(链接库时,只能选择.so文件或者.a文件):
1.首先工程目录下的libs目录下的文件如下图所示:
这里的.so.x.x.x都是“共享库”文件。
2.在qtcreator中,项目链接外部库时,出现下图的情况:只有.a文件
3.将工程目录下的libs目录下的文件中的".so.x.x.x”重命名为".so”(注意:此处的.so.x.x.x为“共享库”类型)
4.在qtcreator中,项目链接外部库时,出现下图的情况:有.a文件和.so文件可以选择进行链接。(注意:因为.so.x.x.x为“共享库”类型,而.so由.so.x.x.x重命名而来,因此此处的.so文件为“共享库”类型)
链接第三方库步骤:
1.将第三方库的.h文件放入include文件夹
注意:放入哪个文件夹都无所谓,只要在项目中进行链接时,选择.h文件所在目录即可。但建议放入include文件夹。
项目的include文件夹:
2.将第三方库的.so文件以及.a文件放入libs文件夹。
注意:放入哪个文件夹都无所谓,只要在项目中进行链接时,选择.h文件所在目录即可。但建议放入libs文件夹。
要确保.so文件是“共享库”文件,或者如果是“到共享库的链接”的话,确保能够链接到某个共享库文件。这里最好是选择使.so文件为“共享库”文件。
项目的libs文件夹:
3.链接库
在qt creator中打开项目,选择项目->添加库->外部库->库文件,选择libs文件夹路径->包含路径,选择include文件夹路径->确定