Undefined Reference to 'qt_version_tag'

(10月13号)

先挖一个坑,这个问题还不知道怎么解决

通过重装qt'都不能解决,先留着有时间一定要弄清楚这个奇葩问题。

Undefined Reference to 'qt_version_tag'

背景说明:在qt环境下使用faster RCNN,然后只要是使用qt自带的库就会报错,例如QTime QString 只要是带Q的都不行。然后如果不加载/usr/lib/x86_64-linux-gnu/libboost 也没有问题,因为caffe框架下肯定是要使用boost的,所以先宁愿不使用Qt库。

如果有哪个大侠知道该怎么解决,跪谢!(不想重装系统)


(10月16号)

握草了,这小问题纠结了好久,不过最终还是找到了原因。

在百度上怎么搜这个问题,都找不到我想要的。但是google一下,第一条就是正解啊。谷歌大法好。

链接:https://forum.qt.io/topic/72806/undefined-reference-to-qt_version_tag/5


首先,有一个奇怪的问题:

在终端执行 qmake -v

QMake version 3.0
Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu


然后在终端执行 ~/Qt5.6.0/5.6/gcc_64/bin/qmake -v

QMake version 3.0
Using Qt version 5.6.0 in /home/lcg/Qt5.6.0/5.6/gcc_64/lib
有没有发现? 系统默认的qmake并不是我们安装路径里面的qmake并且版本都不一样,存在的路径不一样,然后只要我们的工程的pro文件中存在这样的语句 LIBS +=-L/usr/lib/x86_64-linux-gnu 编译的时候就会报错Undefined Reference to 'qt_version_tag'


所以只是需要将这个路径去掉就可以避免这个报错了。

例如: 

LIBS+=-L/usr/lib/x86_64-linux-gnu -lglog  

将其改写

LIBS+=/usr/lib/x86_64-linux-gnu/libglog.so 

这种写法就不会报错了。其根本原因是两个qt版本导致的。  


  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值