加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

QT .pro文件 LIBS用法详解 及 动静态库

(2016-02-26 10:35:53)
标签:

it

分类: qt

在程序中需要使用到团队其它成员开发的静态库和动态库,起初是知道使用LIBS变量在在.pro文件中指定需要包含的库,但是实际使用的时候却遇到很大麻烦,但其实确实是因为自己看官方文档不太用心造成的。

 下面是官方文档对于LIBS变量的使用说明:

http://images.cnitblog.com/blog/483444/201408/252353515635267.png.pro文件 LIBS用法详解 及 动静态库" />

这段话对于LIBS的使用说的很清楚了,就是-L指定库的目录,而-l指定库的名字(如果是在Linux下,则去掉lib和后缀名,windows 下去掉后缀名即可),静态库、动态库都是一样的。但是它没说的是,如果使用相对路径,而库又想要被程序找的到,那么这个相对路径指的是执行程序生成的位置 于库的相对路径,因为QT编译时会把生成路径放在和项目相同目录下的另一个文件夹中,那么也就是说,我们必须把库拷贝到编译生成的目录下才行(这里解释一 下,可能是受VC的影响,VC中编译生成目录默认是在项目根目录下的,所以养成了习惯,误以为在Qt中也是把库放在根目录下就可以了,其实这是错的)。

如果不想把库拷贝到编译输出目录,那么也可以指定绝对路径。下面是两种方式的对比:

1、相对路径:

http://images.cnitblog.com/blog/483444/201408/260009332044410.png.pro文件 LIBS用法详解 及 动静态库" />

需要将库拷贝到与生成应用程序相对路径的目录下才行

在window下使用qmake“翻译”过生成的makefile文件中的路径为:

http://images.cnitblog.com/blog/483444/201408/260014363292850.png.pro文件 LIBS用法详解 及 动静态库" />

可以看到用线圈起来的地方,就是GCC标准的参数,指定了库的位置。

2、绝对路径:

http://images.cnitblog.com/blog/483444/201408/260012480015454.png.pro文件 LIBS用法详解 及 动静态库" />

使用红线圈起来的地方就是绝对路径,在window下,qmake“翻译”过生成的makefile文件中指定了库的文件,显然是绝对路径。

http://images.cnitblog.com/blog/483444/201408/260017570637142.png.pro文件 LIBS用法详解 及 动静态库" />

3、自动生成.pro

除了手动设置库文件的位置,还可以使用导入的方式,让QtCreator自动生成导入库文件的方式。步骤如下:

在工程文件上右键选择添加库,到下一步,选择External library。

http://images.cnitblog.com/blog/483444/201408/260023240636442.png.pro文件 LIBS用法详解 及 动静态库" />

然后按照指示,指定库的位置即可。然后QtCreator会自动生成具有绝对路径的库文件指定语句。

http://images.cnitblog.com/blog/483444/201408/260027444239549.png.pro文件 LIBS用法详解 及 动静态库" />

 

4、总结

最后,库的写法与头文件的包含类似,也可以使用反斜线将其放在不同行对齐,如果许多库属于同一个目录,那么只要在最前面用-L指定目录,后面所有的库用空格分开就行了。如下面的写法:

http://images.cnitblog.com/blog/483444/201408/260030418761096.png.pro文件 LIBS用法详解 及 动静态库" />

 

0

阅读 收藏 喜欢 打印举报/Report
前一篇:ARM 汇编指令
后一篇:2016年03月17日
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有