ubuntu 升级QT5.11/13到5.14编译出现undefined reference to 'qt_version_tag'的错误

备注:

1、一开始从5.11升级到5.13没有记录完整的解决过程,这次升级到5.14完善了这些过程,本文章重新编辑存档

2、以下操作建立在卸载旧版,已经安装新版的前提下。

旧版本卸载到安装目录下,执行Maintenance Tool即可

问题

如题,本地的QT是5.11(更新过一次到5.13),之后再更新到5.14之后,重新编译项目,出现undefined reference to 'qt_version_tag'错误,下面紧跟着一堆的错误:

解决:

1、既然是qt_version_tag的问题,说明是qmake的版本不兼容导致,即当前QT使用的qmake和系统实质指定的qmake版本不一致。查看系统默认的qmake版本:

果真,系统默认的qmake仍然是5.13版本。那就把系统默认的qmake指向改回新装的5.14即可,即需要修改qtchooser中的defaulat.conf文件。注意default.conf文件在qt-default目录下的qtchooser目录中,其他地方也有qtchooser,不要找错地方。

打开default.conf,需要sudo权限;发现其内容如下,把13路径改成刚装的14的路径,注意这里写的是你自己安装的新版路径,并不一定是在opt目录里。

修改成如下,然后保存退出:

再查看版本信息,发现已经修改成功

2、然后再编译程序,发现还有一样的错误;难道QT的设置还有问题?查看QT的环境配置,已经是14了,配置没有问题。

既然不是QT的设置问题,那就只剩一个了,项目工程文件.pro的库文件设置有问题,经过检查发现,.pro里面有几个QT库文件路径没有改回来导致:

改成正确的路径即可:

注意这里添加QT库需要用到“外部库”的方式进行添加,如果用系统库的方式添加仍然还是有错的:

需要使用外部库的方式添加,如下:

到此,所有问题解决成功。为QT升级成6.0做准备。

发布了74 篇原创文章 · 获赞 127 · 访问量 91万+

猜你喜欢

转载自blog.csdn.net/AAA123524457/article/details/103128226