(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
然后在终端执行 ~/Qt5.6.0/5.6/gcc_64/bin/qmake -vQMake version 3.0 Using Qt version 5.5.1 in /usr/lib/x86_64-linux-gnu
有没有发现? 系统默认的qmake并不是我们安装路径里面的qmake并且版本都不一样,存在的路径不一样,然后只要我们的工程的pro文件中存在这样的语句 LIBS +=-L/usr/lib/x86_64-linux-gnu 编译的时候就会报错Undefined Reference to 'qt_version_tag'QMake version 3.0 Using Qt version 5.6.0 in /home/lcg/Qt5.6.0/5.6/gcc_64/lib
所以只是需要将这个路径去掉就可以避免这个报错了。
例如:
LIBS+=-L/usr/lib/x86_64-linux-gnu -lglog
将其改写
LIBS+=/usr/lib/x86_64-linux-gnu/libglog.so
这种写法就不会报错了。其根本原因是两个qt版本导致的。