qt 依赖第三库编译链接注意事项

如果基于qt框架进行软件开发的话,那么不可避免的会使用到第三方库,这时候很多朋友会有这种疑问,如何编写pro文件,能够使编译链接顺利完成呢?

这里提供两种方案:

  • 默认安装路径,依赖的库采用默认的安装路径
  • 安装到指定路径,生成了头文件和库文件

上述这两种方式本质上一样的,都需要告诉编译器依赖的头文件和库文件的位置。如果编译器通过ld.so.conf等配置文件配置了默认的搜索路径可以显式的告知,下面以第二种方式为基准进行介绍,要告诉编译器头文件和库文件的路径需要几个关键字,但是有个概念,大家还是应该了解,即:

  1. 编译链接阶段,该阶段仅负责编译链接通过,如果找不到对应的头文件就需要告知编译器头文件的位置,通过关键字LIBS INCLUDEPATH告知编译阶段需要依赖的头文件和库文件位置,需要注意的是仅指明库文件的位置是不行的,必须要是显式的指明依赖库的名称,这是与第二阶段的不同的地方。
  2. 运行阶段,程序运行时要加载动态库,编译链接通过并不代表,运行能找到动态库,它跟编译阶段阶段找到的动态库是两回事,如果此阶段找不到动态库,可以通过LD_LIBRARY_PATH来指明动态库的搜索路径。

下面重点介绍上面提到的几个关键字:

  • LIBS,该关键字可以显式的指明依赖的库文件的位置和依赖的库文件的名称,它有两个选项-L和-l,其中-L表示的指明依赖库的路径,-l显式的指明依赖库的名称,当然也可以不使用-l选项(通过文件的绝对路径也可以)。
  • INCLUDEPATH,该关键字可以显式的指明依赖库的头文件的位置,这里最好指定绝对路径,但是千万不要使用-I选项,我之前记混了,配置后没有生效。

猜你喜欢

转载自blog.csdn.net/iqanchao/article/details/132459252