Ubuntu18.04 Qt安装 问题记录 | -iGL | Could not load the Qt platform plugin “xcb“ in ““ even though it was

文章描述了一位用户在Ubuntu18.04上安装Qt6.5后遇到Qtcreator无法启动的问题,通过降级到Qt5.12.12并配置环境变量、处理动态库链接错误以及修改qtcreator启动脚本来解决问题。
摘要由CSDN通过智能技术生成

稍微记录一下安装过程吧
系统是Ubuntu18.04
qt5.15之后只能通过在线安装,就是下载安装启动器之后,在安装界面中选择组件,然后下载。但是在本机上安装qt6.5之后无法打开qtcreator。查询无果之后,选择降低qt版本,最终安装了qt5.12.12版本。

TIP: 本机之前安装过其他版本的qt,所以会出现一些版本冲突的问题

下载与安装

Qt官方下载
在官方下载页面下载离线安装包,例如qt-opensource-linux-x64-5.12.12.run
给予权限并用sudo启动

sudo chmod 777 qt-opensource-linux-x64-5.12.12.run
sudo ./qt-opensource-linux-x64-5.12.12.run

之后就一路安装下来。
打开Qtcreator进行验证,如果能打开基本就没问题了。

添加一下环境变量

因为之前安装过其他版本的qt,所以输入qmake -v之后可能显示的qt版本不是当前新安装的,所以重新配置一下系统环境变量就能正确显示了。

  • 对profile进行修改
sudo vim /etc/profile
  • 添加环境变量
export QTDIR=/opt/Qt5.12.12/5.12.12
export PATH=$QTDIR/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/gcc_64/lib:$LD_LIBRARY_PATH
  • 装好之后记得生效一下
source /etc/profile

再在终端中输入qmake -v查看版本信息。

安装过程中的错误

在Qtcreator中新建一个项目并运行,可能会出现以下错误
在这里插入图片描述
此时可能是因为系统中没有对应的动态库,所以尝试

sudo apt install mesa-common-dev

但是本机已经安装过了。所以继续排错。这个报错中的-l是连接动态库的意思,GL指的是libGL这个动态库,既然已经安装过,那就进行软连接一下就好。

  • 命令行输入locate libGL.so
    因为之前安装过其他版本的qt,所以会有很多路径,有系统环境下的,有conda环境的,反正找到类似一下的两条(基本一致,主要不知道后面这个1和1.0.0是什么情况)
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/libGL.so.1.0.0
  • 创建软连接
ln -s /usr/lib/x86_64-linux-gnu/libEGL.so.1.0.0 /usr/lib/x86_64-linux-gnu/libEGL.so

之后再在qtcreator中启动项目就不会报错了。

用命令行启动qtcreator

虽然这个步骤不是必需的,但是担心变量会影响之后的运行,所以排错一下。

  • 新建qtcreator
sudo vim /etc/bin/qtcreator
  • 对qtcreator进行编辑
#!/bin/sh
export QT_HOME=/opt/Qt5.12.12/Tools/QtCreator/bin
$QT_HOME/qtcreator $*
  • 然后添加权限
sudo chmod +x qtcreator

报错1

在这里插入图片描述
修改一下bashrc

vim ~/.bashrc

在最后一行添加

export QT_DEBUG_PLUGINS=1

然后激活一下

source ~/.bashrc

在终端直接输入qtcreator
但是紧接着出现了另一个报错

报错2

在这里插入图片描述
这个报错挺复杂的,看了cannot load library的部分,去libxcb.so的库看了一眼,没看出来问题,最后找到了一个取巧的办法…
使用sudo qtcreator就能完美启动…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值