.pro文件中LIBS用法详细讲解

用法:LIBS += -Lzzz -lxxx -lyyy

zzz:库路径

xxx、yyy:库文件

库路径可以有以下的形式:

-L.            表示 .pro所在目录

-L$$_PRO_FILE_PWD_/  表示 .pro所在目录

-L$$PWD/    表示 .pro所在目录

-LC:/abc/     表示C:/abc/

库文件可以有以下的形式:

若.pro所在目录lib下有解码库需要被链接,msvc版本为“VideoDecoder.lib”,mingw版本为“libVideoDecoder.a”。

(1)不加-l时,需要写库文件全名:

LIBS += -L$$PWD/lib VideoDecoder.lib

LIBS += -L$$PWD/lib libVideoDecoder.a

这样写死,不利于多编译器编译,不推荐。

(2)加-l时,可以将不同编译器库文件名差异屏蔽掉

假设链接msvc库,则只需要去掉文件后缀(一般是.lib):

LIBS += -L$$PWD/lib -lVideoDecoder

假设链接mingw/gcc库,则需要去掉文件前缀"lib",和后缀(一般是.a):

LIBS += -L$$PWD/lib -lVideoDecoder

这样不管在哪个编译器下,都能保证命令一致。

注意:

请牢记msvc库只去后缀,mingw库去前缀和后缀

因为我遇到一个问题,使用msvc编译工程,工程中调用了boost线程库,boost使用msvc编译为静态库,这个静态线程库

的名字比较坑“libboost_thread-vc141-mt-gd-x64-1_71.lib”,按照我们一贯的想法,肯定是去掉前lib,去掉后缀.lib,像这样:

LIBS += -LC:/Boost_msvc_static/lib/ -lboost_thread-vc141-mt-gd-x64-1_71

死活编译不过,找不到库文件。此时,你只要想起来链接msvc库只去后缀,像这样:

LIBS += -LC:/Boost_msvc_static/lib/ -llibboost_thread-vc141-mt-gd-x64-1_71

编译就通过了。

附《msvc、mingw分别编译动态库与静态库文件名区别》:

msvc动态库:test.dll,test.lib

msvc静态库:test.lib

mingw动态库:test.dll、libtest.a

mingw静态库:libtest.a

 


若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

  • 7
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值