deepin升级Qt5并安装最新的qtcreator

0. 背景

deepin15自带的qt是qt5.7,版本有点太老了,所以准备升级一下,升级到5.15,过程中遇到很多坑,这里记录一下做个备忘

1. 下载Qt安装包

这里直接去官网下载开源版即可:
Qt官网链接
这里下载只是一个安装程序,可以安装5.9到6.x所有版本的Qt,运行之后根据提示一步步安装即可:

  1. 首先需要注册一个帐号,然后一路默认选项进入到第2步:
    deepin升级Qt5并安装最新的qtcreator_第1张图片
  2. 根据需要选择要安装的版本和对应的包,这里我只需要开发桌面程序,因此只选择了安装源码和desktop:deepin升级Qt5并安装最新的qtcreator_第2张图片
  3. 选择好Qt版本后,最下面有qt creator的选项,根据需要勾选,这里我不需要3D相关的开发,因此只勾选了前两个,需要注意的是deepin15自带的cmake版本比较老,并且没有Ninja,所以记得勾选上下面的cmake和ninja:
    deepin升级Qt5并安装最新的qtcreator_第3张图片
  4. 等待安装结束即可

2. 配置环境变量

安装完成后发现,直接点击快捷方式启动Qt Creator没有反应,这时候就需要调试一下、设置一些环境变量
1.首先打开shell窗口,输入:

export QT_DEBUG_PLUGINS=1

这样我们运行qtcreator就会有详细的日志输出了;
2.然后进入到Qt的安装目录(安装的时候有设置),安装目录下面会有一个Tools目录,Tools目录里装有我们安装的cmake、ninja以及qtcreator:在这里插入图片描述
3.进入到QrCreator的bin目录,执行一下qtcreator:

./qtcreator

然后会出现报错信息,我的报错如下:在这里插入图片描述
发现错误是检查红圈所示的目录时候发生的,这个目录其实就是qtcreator所在的bin目录,我发现这个目录地下没有platforms这个目录,然后我百度了下面关于 xcb 找不到的报错,发现是找不到libqxcb.so这个文件导致的,于是全局搜了一下:

sudo find / -name libqxcb.so

发现在/usr目录和我的qt5的安装目录下都有这个文件,/usr目录下那个应该是系统自带的,不要用这个,我们选用qt5安装目录下的:
deepin升级Qt5并安装最新的qtcreator_第4张图片
我发现这个so文件就是在platforms目录下面,因此我猜测这个应该就是bin目录下缺少的那个目录,查阅资料发现,需要添加一个环境变量指定qt搜索platforms的路径:

export QT_QPA_PLATFORM_PLUGIN_PATH="/path/to/qt/install"

将环境变量设置为刚才find找到的platforms目录,然后再运行一下qtcreator,发现有新的报错:
deepin升级Qt5并安装最新的qtcreator_第5张图片
我们直接复制过来的platforms底下的libqxcd.so加载失败了,是由于这个so文件依赖libQt5XcbQpa.so.5文件里少了一个符号。
可以看到,这个依赖文件应该是qt5的一个库文件,但是从报错可以看到我们加载的是/lib目录底下的qt5的库,所以可以猜到应该是系统自带的qt5的库跟我们下载的版本不一致导致的,我们全局搜一下libQt5XcbQpa.so.5这个文件:
在这里插入图片描述
可以看到,我们的qt5安装目录下面有两个目录里有这个文件,这里我们选择qtcreator所在的目录,把这个目录添加到环境变量里:

export LD_LIBRARY_PATH=/path/to/lib

路径改成自己的即可。
可以直接把上面讲到的两个export语句添加到~/.bashrc文件里(直接放文件最后一行),这样就不用每次都手动添加这个环境变量了:
deepin升级Qt5并安装最新的qtcreator_第6张图片
改好之后,source ~/.bashrc 运行一下即可生效。
关于Qt5的环境变量,可以参考一下这个博文
Qt5.x移植后的环境配置
添加完环境变量,我们再来运行qtcreator,成功运行!
deepin升级Qt5并安装最新的qtcreator_第7张图片
如果还报错,说是libxcb-util.so.1找不到,这个据说是qt的bug(我是没有遇到),可以参考一下这个博客,把创建一个libxcb-util.so.1软连接指向系统自带的libxcb-util.so.0即可:
QtCreator提示libxcb-util.so.1找不到怎么办

3. 升级系统的cmake版本

deepin15自带的cmake版本太低,这里我们替换成我们刚才下载的cmake3.21

  1. 首先卸载掉系统自带的cmake:
	sudo apt autoremove cmake
  1. 然后进入到Qt安装目录的Tools/CMake/bin目录,把里面的程序复制一份到/usr/bin目录即可
  2. 检查一下是否成功:
    在这里插入图片描述
    Ok,万事大吉,Have fun!

你可能感兴趣的:(linux,linux,qt5)