一.下载源码包
官网https://download.qt.io/,依次点击目录:archive/—>qt/—>5.12/—>5.12.6/—>single/,在该目录下找到 qt-everywhere-src-5.12.6.tar.xz,下载并在centos中完成解压。
二.环境准备(虚拟机的内存大一点,否则编译会因内存不够失败)
sudo yum -y install mesa-libGL-devel mesa-libGLU-devel freeglut-devel
sudo yum groupinstall "Development Tools"
sudo yum install libX11-devel libxcb-devel
sudo yum install gperf
sudo yum install flex
sudo yum install bision
sudo yum install mesa-libGL-devel
sudo yum install mesa-libGLES-devel
sudo yum install libxkbcommon-devel libxcb-devel
sudo yum install libX11-devel libX11-xcb-devel libxkbcommon-x11-devel
gcc版本要大于4.8,否则不支持c++11以上的一些语言特性。
三.升级gcc
1.添加 DevTools 子仓库
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
2.安装 GCC
sudo yum install -y devtoolset-7-gcc devtoolset-7-gcc-c++
3.激活 GCC 版本
scl enable devtoolset-7 bash
4.如果你想在每次开机时自动启动 devtoolset,请在终端中执行下面的命令:
echo 'source scl_source enable devtoolset-7' >> /etc/profile
请注意直接在命令行输入该命令行会提示权限不够,应先输入su命令进入root用户,在输入上述命令即可。重启客户端生效。
5.查看gcc版本
gcc --version (本说明是7.3.1版本)
四.配置编译安装
1.配置
mkdir qt-5.12.6-build 新建编译目录
cd qt-5.12.6-build
../qt-everywhere-src-5.12.6/configure -prefix ../qt-5.12.6 -release -nomake tests --xcb -xcb-xlib -xkbcommon 不加--xcb -xcb-xlib -xkbcommon 参数,编译、安装不会错,但是最后测试的时候会报找不到xcb模块的错误。
2.编译
make -j4(根据个人电脑配置决定开启多少线程,用时一小时以上)
3.安装
make install
4.更新环境变量
sudo vim ~/.bashrc
在文件末尾加入以下内容(/home/ipacs/qt5.12.6/qt-5.12.6 换成自己的安装目录)
export QTDIR=/home/ipacs/qt5.12.6/qt-5.12.6
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
source ~/.bashrc (刷新生效)
qmake-v 查看qmake版本、qt的版本,有的话则安装成功
五、新建测试app
1.新建test.cpp
#include<QApplication>
#include<QWidget>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QWidget* pWidget = new QWidget;
pWidget->setFixedSize(400, 300);
pWidget->show();
return app.exec();
}
2.测试
① 通过命令生成的pro文件
qmake -project
qmake test.pro
②打开生成的test.pro文件,加入QT += widgets
make
./test
如果没有错误则测试通过,如果有错误,在终端输入export QT_DEBUG_PLUGINS=1,再执行./test。拉到最下面查看报错原因,根据原因进行更改。