CentOS 6/7 安装Qt环境

基本环境

系统:64位 CentOS 6.10 / CentOS 7.6

  1. 网易镜像站 CentOS-6-x84_64
  2. 网易镜像站 CentOS-7-x84_64
  3. 阿里云镜像站 CentOS-6-x84_64
  4. 阿里云镜像站 CentOS-7-x84_64

Qt 需求

  1. Qt-5.7 / Qt5.12
  2. gcc-4.7 或以上
  3. python-2.7
  4. CMake-3 以上
  5. 支持 python-2.7 的 gdb
  6. opengl 开发组件

安装步骤

# 以下步骤请全部基于root权限进行
# 基本工具包括 wget、yum、xz、tar,如果是以上的系统源的话应该会有的,如果没有则需要自行安装
# 步骤中不修改环境变量,通过创建软链接到 /usr/bin 或者 /usr/local/bin 中代替

0. yum源

2020年11月,CentOS6被扫进了历史的垃圾堆,因此旧yum源全部失效,需要使用Vault源。
可以参考这个链接进行替换 https://blog.csdn.net/qq_41938046/article/details/110920247
建议使用阿里云的源 http://mirrors.aliyun.com/centos-vault/

1. 安装基本开发工具组

参考链接 https://www.cnblogs.com/zlslch/p/6033284.html

  yum -y groupinstall Development tools

2. 安装 gcc-4.8.2

参考链接 https://blog.csdn.net/dijkstar/article/details/82218170
CentOS-6 默认安装的 gcc 版本是 4.4.7,是不支持 c++11 的,因此需要提升到 4.7 以上的版本,这里选择 4.8.2 是因为安装方便而已。
CentOS-7 默认是 4.8.5,可以跳过此步。

  wget http://people.centos.org/tru/devtools-2/devtools-2.repo
  mv devtools-2.repo /etc/yum.repos.d
  yum -y install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
  # 将原有的程序作备份
  mv /usr/bin/gcc /usr/bin/gcc-4.4.7
  mv /usr/bin/c++ /usr/bin/c++-4.4.7
  mv /usr/bin/g++ /usr/bin/g++-4.4.7
  # 创建软链接
  ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc
  ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++
  ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++
  # 查看版本号,如果显示4.8,则成功
  gcc --version
  g++ --version
  c++ --version
  # 使用软连接的方式是会覆盖掉原来的gcc指向的,如果想要更大的灵活性,建议使用如下的方式替代
  source /opt/rh/devtoolset-2/enable

3. 安装 python-2.7

CentOS-7 默认安装的 python 是 2.7.5 版本的,这里可以跳过

  wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz
  xz -d Python-2.7.11.tar.xz
  tar -xvf Python-2.7.11.tar
  cd Python-2.7.11
  ./configure --prefix=/opt/python-2.7.11/
  make
  make install
  # 这里不要把 python2.7 的链接改名为 python,
  # 因为 yum 是基于原有版本的 python 的,
  # 修改的话需要重新指向 yum 使用的 python
  ln -s /opt/python-2.7.11/bin/python2.7 /usr/bin/
  # 查看版本号
  python2.7 --version

4. 安装 CMake-3.14.4

选择这个版本是因为这个是当前最新的版本。

  wget https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4.tar.gz
  tar -xvf cmake-3.14.4.tar.gz
  cd cmake-3.14.4
  ./bootstrap --prefix=/opt/cmake-3.14.4/
  make
  make install
  # 如果已存在 /usr/bin/cmake,参照安装 gcc 的部分做个备份
  mv /usr/bin/cmake /usr/bin/cmake.bak
  ln -s /opt/cmake-3.14.4/bin/cmake /usr/bin/
  # 查看版本号
  cmake --version

5. 安装 gdb

CentOS-6/7 都有默认安装的 gdb,虽然版本不同,但是都不适用,因为Qt需要支持 python 的 gdb,所以需要重新安装,在安装配置的时候添加上支持 python。选择这个版本的 gdb 是因为这个是当前最新的版本,而这个版本的 gdb 要求的 python 版本是2.7+,所以才有第2步安装python-2.7。

  wget ftp://sourceware.org/pub/gdb/releases/gdb-8.3.tar.xz
  xz -d gdb-8.3.tar.xz
  tar -xvf gdb-8.3.tar
  cd gdb-8.3
  ./configure --prefix=/opt/gdb-8.3/ --with-python='/usr/bin/python2.7'
  make
  make install
  # 如果已存在 /usr/bin/gdb,参照安装 gcc 的部分做个备份
  mv /usr/bin/gdb /usr/bin/gdb-7.2
  ln -s /opt/gdb-8.3/bin/gdb /usr/bin/
  # 查看版本号
  gdb --version

6. 安装 Qt

Qt安装需要在可视化图形界面下安装,如果没有GNOME或其他X11界面的话需要先安装并启用。
CentOS-6 支持的 Qt 版本为从 Qt-4 到 Qt-5.7,再高的时候安装会报错,报错信息像下边这样,不过这段没什么意义,因为错误信息无法解析。

Error during installation process (qt.qt5.5123.gcc_64): The output of /opt/Qt/5.12.3/gcc_64/bin/qmake -query is not parseable.

这时候看安装详细信息能看到需要el7什么的,el7指的是CentOS-7的环境。
CentOS-7 支持 Qt-5.8 或以上,最新稳定版本是 5.12.3,5.13还在测试中。

Qt 的各版本可以去Qt的下载中心 http://download.qt.io/ 自行寻找,使用wget下载即可,下载完记得使用 chmod a+x 获得执行权限。
Qt-5.7.1 离线安装版 http://download.qt.io/archive/qt/5.7/5.7.1/qt-opensource-linux-x64-5.7.1.run
Qt-5.12.3 离线安装版 http://download.qt.io/archive/qt/5.12/5.12.3/qt-opensource-linux-x64-5.12.3.run
Qt-5.12.3 线上安装版 http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run
在线安装程序随时间可安装的版本不同,目前可选的是 5.12.3 和 5.11。
安装的时候是图形化界面安装,记得把source选上,这个是源代码,一些插件需要自己构建的时候要用到,比如使用mysql的时候。

7. 其他

  1. 安装 OpenGL 开发库

    yum -y install mesa* freeglut*
    
  2. 安装 OpenCV 开发库

    yum -y install opencv opencv-devel
    
  3. 安装 mysql 开发库
    要在Qt中使用mysql,需要mysql自身的库和qtsqlmysql插件(也称作Qt的mysql驱动),可参考
    https://www.cnblogs.com/yongqiang/p/6121515.html

    yum -y install mysql mysql-devel
    cd /opt/Qt5.7.1/5.7/Src/qtbase/src/plugins/sqldrivers/mysql/
    qmake
    make
    

    make 之后会产生 libqsqlmysql.so,注意看最后打印的路径,我的是在这里:
    /opt/Qt5.7.1/5.7/Src/qtbase/plugins/sqldrivers/libqsqlmysql.so
    使用的时候将sqldrivers文件夹一起拷到应用程序目录即可

  4. 提高glibc版本
    glibc是linux的基础组件,一般情况下不建议升级,这里以glibc-2.17版本为例做个参考。

    wget http://ftp.gnu.org/gnu/libc/glibc-2.17.tar.gz
    tar -xvf glibc-2.17.tar.gz
    cd glibc-2.17
    mkdir build
    cd build
    ../configure --prefix=/usr
    make
    make install
    strings /lib64/libc.so.6 |grep GLIBC
    
  5. Qt linux 程序打包发布
    参考链接 https://blog.csdn.net/u014746574/article/details/79288727
    这篇文章里有一个脚本:

    #!/bin/sh
    bin=$1         #发布的程序名称  
    desDir="./lib" #你的路径  
    if [ ! -d $desDir ];then
          #echo "makedir $desDir"
          mkdir $desDir
    fi 
    libList=$(ldd $bin | awk  '{if (match($3,"/")){ printf("%s "),$3 } }')
    cp $libList $desDir
    

    将这个脚本保存为 copylib.sh,使用 chmod a+x 获得执行权限,移动到 /usr/bin/ 下,就可以在目标程序所在目录中调用了。调用后会在目标程序旁边创建一个目录 lib,里面执行所需的库基本都有了,不使用 linuxdepoyqt 也是可以的。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值