前言
准备工作:
- linux操作系统(ubuntu20.0.4演示,centos7,8,9操作思路一致)
- qt安装包
我这里使用ubuntu20.0.4和qt-opensource-linux-x64-5.12.12.run,即qt5.12.12做演示。经过测试发现,qt的版本和centosb版本必须互相兼容,建议qt5.9装在centos7上,qt5.12装在ubuntu20.0.4上。目前发现,ubuntu普通用户安装qt失败,qt5.12在centos7上安装成功,在centos8、9上闪退,分别报已杀死和mprotect failed in executable allocator错误,原因未知。
qt5.9和qt5.12.12:
链接:https://pan.baidu.com/s/1N2gdehSA9zcALCatb9UK5A
提取码:yk4h
–来自百度网盘超级会员V2的分享
链接:qt官网
链接:qt其他下载地址
官网下载qt比较慢
注意:qt以及qt开发出来的程序,很多库都是依赖操作系统本地的,所以当你的qt版本和操作系统版本有不一致时,重则无法运行程序,轻则界面布局混乱,所以在安装前,问问你的同学同事,你需要安装什么版本的qt和操作系统,非常重要!!!
注意:以下所有操作均使用root,原因是不适用root时产生许多许多问题。但ubuntu默认不能使用root登录,需要修改文件来开启。centos可以不用管这个。使用普通用户可能会出错
ubuntu默认不允许使用root,但可手动修改文件开启
一、配置qt运行环境
演示过程ubuntu和centos完全一致,只需将安装命令apt换成yum即可
将qt可执行文件上传到linux的某个文件夹下
**上传方法一、**通过虚拟机的vmware tools工具(不同虚拟机应该都有类似的工具,用于实现虚拟机和本机互传文件,包括剪切板)
将qt-opensource-linux-x64-5.12.12上传到/root/文档目录下(随便一个即可)
注意:你以什么用户上传到linux的,该文件就拥有什么权限。比如你以普通用户上传到某些目录可能会出错,基本就是权限问题,新手不明白这些就直接用root用户
vm tools好像经常抽风,有时候能直接将本机文件拖拽到linux,有时候不可以
我的情况是,在某些位置有禁止符
有的位置又可以粘贴了
关于vm tools不能使用的问题可参考这篇文章,文章的后半部分详细介绍了可能的问题
**上传方法二、**使用远程连接工具xftp上传
关于xftp和远程工具连接虚拟机,我在文章中做了详细的介绍
下面直接做个演示,新手使用前请仔细看文章链接,远程工具连接虚拟机有很多坑
使用xftp连接linux后,直接把文件拖到目录中即可,该方法逼格高,且在工作的时候极其好用
上传方法三:使用共享文件夹
虚拟机设置共享文件夹该文章详细介绍了,但我最推荐方法二
链接:虚拟机设置共享文件夹
注意:vmware tools在某些情况下会导致.run文件无法运行,如下图
猜测可能与VMTools有关,VMTools将文件从windows复制到linux虚拟机后文件的md5sum发生变化,导致文件无法运行。
这篇博客做了详细说明:
可改用方法二和方法三上传。
上传成功后。我们先配置qt的运行环境,其中需要下载gcc、g++、make、openGL库,qmake使用qt自带的,我们就不手动安装了。我不清楚这些工具qt安装程序中的是否都自带了,但某些情况下使用qtcreator运行代码时还是报错,所以索性手动安装。注意,命令行下载的版本都是当前系统的最新版,不过后面可以手动修改版本
//更新apt源
apt install epel-release
apt update
//安装gcc
apt install gcc
apt install gcc-c++
//安装make
apt -y install gcc automake autoconf libtool make
//安装openGL库
apt install mesa*
apt install freeglut*
基础环境下载好之后直接在该文件夹下右键,在终端中打开,先给.run文件赋执行权限,执行程序./+文件名
chmod 777 qt-opensource-linux-x64-5.12.12.run
./qt-opensource-linux-x64-5.12.12.run
打开后可能要登录邮箱,有账号的可以直接登录,不想登录的可以把网络关掉后在重新打开安装程序
关闭网络
重新打开安装程序
接下来就正常下一步就行了,这里面只有一点是重要的
安装路径就选择默认的,有意识的记一下这个路径,以后会用得到(最后的字母a我误点了,后面已经删掉)
唯一重要的一步只有这里,除了android不用勾选,其他的都点上,当然你全点也可以
然后一路next即可,等待安装完成。如果你在安装过程中出现闪退的情况,你可能需要更改qt的版本或者操作系统。
安装完成后配置一下qt的环境变量
修改/etc/profile文件
vim /etc/profile
在文件尾部加入环境变量,注意这里加入两条路径,一个是gcc或者gcc_64下的bin目录,一个是/Tools/QtCreator下的bin目录
export PATH=/opt/Qt5.12.12/5.12.12/gcc_64/bin:$PATH
export PATH=/opt/Qt5.12.12/Tools/QtCreator/bin:$PATH
按esc,输入:wq保存退出
重新加载一下环境变量
source /etc/profile
测试一下环境变量是否成功,命令行输入qtcreator,应该可以直接启动qtcreator的,否则环境变量可能设置错误
qtcreator
这里我们再次确认一下gcc、g++和qmake的版本,代码的编译与这两个工具有关,运行同一份代码最好保持g++和qmake版本一致
gcc -v
g++ -v
qmake -v
gcc和g++查出来应该都是gcc的版本,qmake我们是设置环境变量的时候使用qt自带的qmake,不是我们自己安装的,如果你的gcc、g++和我的版本不一致,这不要紧,你只需要保持和同事或者领导的版本一致即可。因为不一致可能会导致同一份代码无法运行。
当然我们也可以更换gcc、g++的版本,修改方法可参考以下文章。
上面的环境变量如果配置正确,命令行输入qtcreator,启动就可以qtcreator,如果没有启动,请检查上面配置qt环境变量的部分。
这里有可能会碰到一个老大难的问题,缺少"xcb"库
qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found
我的问题和这个博主的一样,可以通过这篇文章来解决
链接:解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin "xcb"问题
新建项目测试一下
新建程序
设置好自己的路径
下面全都下一步,到最后完成
如果你的项目没有我方框里框起来的内容,只有一个.pro文件,说明你的构建套件出了问题,请检查之前是否成功安装gcc、g++、make这三个工具
按ctrl+R或者左下角运行的绿色三角,如果运行报错
说明你没有成功安装opengl,请仔细查看之前的步骤。如果你都安装了,那就尝试重启qt或者重启电脑。
最后运行成功