红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)

  • Post author:
  • Post category:linux


前言:

本地一台

redhat linux

虚拟机已经安装了qt5.13.1以及mysql80

详细的安装流程可通过如下链接查看


linux 安装qt


安装mysql

在qt的数据库编程阶段,需要对mysql进行操作,qt内置了sqlite3的数据库驱动,但是对于mysql的驱动却没有明确给出,因为mysql版本众多,作为发行版的qt肯定不能指定用户使用哪个版本的mysql,所以在对mysql进行编程访问时需要首先编译得出mysql的驱动

前置基础环境 : 按安装了qt5.13.1  ,安装了 Server version: 8.0.25 MySQL Community Server – GPL

它们的安装包名为

qt-opensource-linux-x64-5.13.1.run

mysql80-community-release-el7-3.noarch.rpm

具体的安装参考上面的两个链接

安装mysql开发包:

上面的mysql安装教程仅仅安装了mysql的server并没有安装MySQL的开发包

通过下面的命令可以看到本机还未安装mysql的开发包  (mysql的开发包至少要有include文件夹,里面存放的是mysql驱动的头文件)

[leco@localhost lib64]$ whereis mysql

mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/man/man1/mysql.1.gz

通过如下指令安装MySQL开发包

sudo yum install mysql-devel

[leco@localhost lib64]$ sudo yum install mysql-devel

已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.aliyun.com

* updates: mirrors.aliyun.com

正在解决依赖关系

–> 正在检查事务

—> 软件包 mysql-community-devel.x86_64.0.8.0.25-1.el7 将被 安装

–> 正在处理依赖关系 pkgconfig(openssl),它被软件包 mysql-community-devel-8.0.25-1.el7.x86_64 需要

–> 正在检查事务

—> 软件包 openssl-devel.x86_64.1.1.0.2k-21.el7_9 将被 安装

–> 正在处理依赖关系 zlib-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-21.el7_9.x86_64 需要

–> 正在处理依赖关系 krb5-devel(x86-64),它被软件包 1:openssl-devel-1.0.2k-21.el7_9.x86_64 需要

–> 正在检查事务

—> 软件包 krb5-devel.x86_64.0.1.15.1-50.el7 将被 安装

–> 正在处理依赖关系 libkadm5(x86-64) = 1.15.1-50.el7,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要

–> 正在处理依赖关系 libverto-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要

–> 正在处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要

–> 正在处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要

–> 正在处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.15.1-50.el7.x86_64 需要

—> 软件包 zlib-devel.x86_64.0.1.2.7-19.el7_9 将被 安装

–> 正在检查事务

—> 软件包 keyutils-libs-devel.x86_64.0.1.5.8-3.el7 将被 安装

—> 软件包 libcom_err-devel.x86_64.0.1.42.9-19.el7 将被 安装

—> 软件包 libkadm5.x86_64.0.1.15.1-50.el7 将被 安装

—> 软件包 libselinux-devel.x86_64.0.2.5-15.el7 将被 安装

–> 正在处理依赖关系 libsepol-devel(x86-64) >= 2.5-10,它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要

–> 正在处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要

–> 正在处理依赖关系 pkgconfig(libpcre),它被软件包 libselinux-devel-2.5-15.el7.x86_64 需要

—> 软件包 libverto-devel.x86_64.0.0.2.5-4.el7 将被 安装

–> 正在检查事务

—> 软件包 libsepol-devel.x86_64.0.2.5-10.el7 将被 安装

—> 软件包 pcre-devel.x86_64.0.8.32-17.el7 将被 安装

–> 解决依赖关系完成

依赖关系解决

==============================================================================

Package                架构    版本                 源                  大小

==============================================================================

正在安装:

mysql-community-devel  x86_64  8.0.25-1.el7         mysql80-community  6.5 M

为依赖而安装:

keyutils-libs-devel    x86_64  1.5.8-3.el7          base                37 k

krb5-devel             x86_64  1.15.1-50.el7        base               273 k

libcom_err-devel       x86_64  1.42.9-19.el7        base                32 k

libkadm5               x86_64  1.15.1-50.el7        base               179 k

libselinux-devel       x86_64  2.5-15.el7           base               187 k

libsepol-devel         x86_64  2.5-10.el7           base                77 k

libverto-devel         x86_64  0.2.5-4.el7          base                12 k

openssl-devel          x86_64  1:1.0.2k-21.el7_9    updates            1.5 M

pcre-devel             x86_64  8.32-17.el7          base               480 k

zlib-devel             x86_64  1.2.7-19.el7_9       updates             50 k

事务概要

==============================================================================

安装  1 软件包 (+10 依赖软件包)

总下载量:9.3 M

安装大小:52 M

Is this ok [y/d/N]: y

Downloading packages:

(1/11): keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm       |  37 kB   00:05

(2/11): krb5-devel-1.15.1-50.el7.x86_64.rpm              | 273 kB   00:05

(3/11): libcom_err-devel-1.42.9-19.el7.x86_64.rpm        |  32 kB   00:00

(4/11): libkadm5-1.15.1-50.el7.x86_64.rpm                | 179 kB   00:00

(5/11): libsepol-devel-2.5-10.el7.x86_64.rpm             |  77 kB   00:00

(6/11): libselinux-devel-2.5-15.el7.x86_64.rpm           | 187 kB   00:00

(7/11): libverto-devel-0.2.5-4.el7.x86_64.rpm            |  12 kB   00:00

(8/11): zlib-devel-1.2.7-19.el7_9.x86_64.rpm             |  50 kB   00:05

(9/11): openssl-devel-1.0.2k-21.el7_9.x86_64.rpm         | 1.5 MB   00:06

(10/11): pcre-devel-8.32-17.el7.x86_64.rpm               | 480 kB   00:11

(11/11): mysql-community-devel-8.0.25-1.el7.x86_64.rpm   | 6.5 MB   33:17

——————————————————————————

总计                                             4.7 kB/s | 9.3 MB  33:23

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

正在安装    : libkadm5-1.15.1-50.el7.x86_64                            1/11

正在安装    : libsepol-devel-2.5-10.el7.x86_64                         2/11

正在安装    : libcom_err-devel-1.42.9-19.el7.x86_64                    3/11

正在安装    : zlib-devel-1.2.7-19.el7_9.x86_64                         4/11

正在安装    : pcre-devel-8.32-17.el7.x86_64                            5/11

正在安装    : libselinux-devel-2.5-15.el7.x86_64                       6/11

正在安装    : keyutils-libs-devel-1.5.8-3.el7.x86_64                   7/11

正在安装    : libverto-devel-0.2.5-4.el7.x86_64                        8/11

正在安装    : krb5-devel-1.15.1-50.el7.x86_64                          9/11

正在安装    : 1:openssl-devel-1.0.2k-21.el7_9.x86_64                  10/11

正在安装    : mysql-community-devel-8.0.25-1.el7.x86_64               11/11

验证中      : libselinux-devel-2.5-15.el7.x86_64                       1/11

验证中      : 1:openssl-devel-1.0.2k-21.el7_9.x86_64                   2/11

验证中      : libverto-devel-0.2.5-4.el7.x86_64                        3/11

验证中      : krb5-devel-1.15.1-50.el7.x86_64                          4/11

验证中      : mysql-community-devel-8.0.25-1.el7.x86_64                5/11

验证中      : keyutils-libs-devel-1.5.8-3.el7.x86_64                   6/11

验证中      : pcre-devel-8.32-17.el7.x86_64                            7/11

验证中      : zlib-devel-1.2.7-19.el7_9.x86_64                         8/11

验证中      : libcom_err-devel-1.42.9-19.el7.x86_64                    9/11

验证中      : libsepol-devel-2.5-10.el7.x86_64                        10/11

验证中      : libkadm5-1.15.1-50.el7.x86_64                           11/11

已安装:

mysql-community-devel.x86_64 0:8.0.25-1.el7

作为依赖被安装:

keyutils-libs-devel.x86_64 0:1.5.8-3.el7

krb5-devel.x86_64 0:1.15.1-50.el7

libcom_err-devel.x86_64 0:1.42.9-19.el7

libkadm5.x86_64 0:1.15.1-50.el7

libselinux-devel.x86_64 0:2.5-15.el7

libsepol-devel.x86_64 0:2.5-10.el7

libverto-devel.x86_64 0:0.2.5-4.el7

openssl-devel.x86_64 1:1.0.2k-21.el7_9

pcre-devel.x86_64 0:8.32-17.el7

zlib-devel.x86_64 0:1.2.7-19.el7_9

完毕!

安装完mysql开发包后再看下whereis mysql

编译mysql驱动1:

有两种方式可以让qt编译出mysql驱动,一种是直接编译qt的mysql驱动模块,还有就是直接编译整个qt源码,前者所需时间较少,此次采用直接编译mysql的驱动模块

首先进入qt 的mysql驱动模块文件夹

/home/leco/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/mysql

修改mysql.pro文件内容

在该目录下执行如下语句(在上面给出的qt的安装中已经展示了如何将qt添加到环境变量,不添加环境变量这里使用qmake会提示无效指令)

qmake -o Makefile “INCLUDEPATH+=/usr/include/mysql” “LIBS+=/usr/lib64/mysql/libmysqlclient.so” mysql.pro   注意该指令中的路径可通过whereis mysql 查看到路径,可新建终端按照路径去找

例如:

[leco@localhost mysql]$ qmake -o Makefile “INCLUDEPATH+=/usr/include/mysql” “LIBS+=/usr/lib64/mysql/libmysqlclient.so” mysql.pro

Cannot read /home/leco/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/qtsqldrivers-config.pri: No such file or directory

报错上面的问题,根据提示我们去看下为什么没有该文件或者目录

根据上面的查找,发现确实没有qtsqldrivers-config.pri这个文件,下面就要修改使用到该文件的地方,在qsqldriverbase.pri这个文件中修改如下

保存退出后进入/home/leco/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/mysql目录,执行如下指令生成makefile

qmake -o Makefile “INCLUDEPATH+=/usr/include/mysql” “LIBS+=/usr/lib64/mysql/libmysqlclient.so” mysql.pro

此时已经生成了makefile文件

执行make指令

此时又报错了,这个问题的原因是g++的版本太老了

先看下当前的gcc版本

[leco@localhost mysql]$ g++ -v

使用内建 specs。

COLLECT_GCC=g++

COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper

目标:x86_64-redhat-linux

配置为:../configure –prefix=/usr –mandir=/usr/share/man –infodir=/usr/share/info –with-bugurl=http://bugzilla.redhat.com/bugzilla –enable-bootstrap –enable-shared –enable-threads=posix –enable-checking=release –with-system-zlib –enable-__cxa_atexit –disable-libunwind-exceptions –enable-gnu-unique-object –enable-linker-build-id –with-linker-hash-style=gnu –enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto –enable-plugin –enable-initfini-array –disable-libgcj –with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install –with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install –enable-gnu-indirect-function –with-tune=generic –with-arch_32=x86-64 –build=x86_64-redhat-linux

线程模型:posix

gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

[leco@localhost mysql]$

发现gcc版本为4.8.5

升级GCC/G++版本:

centos的yum源所支持的gcc版本默认的最高版本就是4.8.5版本,无法通过 yum指令直接升级gcc

升级gcc有两种方法,1是下载所需版本的源码直接编译后替换安装,2使用红帽的gcc版本管理工具

推荐使用红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gcc环境。

红帽官方Developer Toolset文档地址:

https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/8/

devtoolset对应gcc的版本

devtoolset-3对应gcc4.x.x版本

devtoolset-4对应gcc5.x.x版本

devtoolset-6对应gcc6.x.x版本

devtoolset-7对应gcc7.x.x版本

因为在前文linux配置一条龙里面已经配置了cento7的阿里云yum源,下面开始升级gcc


首先安装centos-release-scl

sudo yum install centos-release-scl

[leco@localhost mysql]$ sudo yum install centos-release-scl
[sudo] leco 的密码:
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                   | 3.6 kB     00:00     
extras                                                 | 2.9 kB     00:00     
mysql-connectors-community                             | 2.6 kB     00:01     
mysql-tools-community                                  | 2.6 kB     00:00     
mysql80-community                                      | 2.6 kB     00:00     
updates                                                | 2.9 kB     00:00     
正在解决依赖关系
--> 正在检查事务
---> 软件包 centos-release-scl.noarch.0.2-3.el7.centos 将被 安装
--> 正在处理依赖关系 centos-release-scl-rh,它被软件包 centos-release-scl-2-3.el7.centos.noarch 需要
--> 正在检查事务
---> 软件包 centos-release-scl-rh.noarch.0.2-3.el7.centos 将被 安装
--> 解决依赖关系完成

依赖关系解决

==============================================================================
 Package                    架构        版本                源           大小
==============================================================================
正在安装:
 centos-release-scl         noarch      2-3.el7.centos      extras       12 k
为依赖而安装:
 centos-release-scl-rh      noarch      2-3.el7.centos      extras       12 k

事务概要
==============================================================================
安装  1 软件包 (+1 依赖软件包)

总下载量:24 k
安装大小:39 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): centos-release-scl-2-3.el7.centos.noarch.rpm      |  12 kB   00:00     
(2/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm   |  12 kB   00:11     
------------------------------------------------------------------------------
总计                                             2.0 kB/s |  24 kB  00:11     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : centos-release-scl-rh-2-3.el7.centos.noarch               1/2 
  正在安装    : centos-release-scl-2-3.el7.centos.noarch                  2/2 
  验证中      : centos-release-scl-2-3.el7.centos.noarch                  1/2 
  验证中      : centos-release-scl-rh-2-3.el7.centos.noarch               2/2 

已安装:
  centos-release-scl.noarch 0:2-3.el7.centos                                  

作为依赖被安装:
  centos-release-scl-rh.noarch 0:2-3.el7.centos                               

完毕!


安装devtoolset

注意,如果想安装8.

版本的,就改成devtoolset-8-gcc

,以此类推 (因为本机是centos7,gcc版本也不宜过高,gcc 8.2.0版本可用)

sudo yum install devtoolset-8-gcc*

[leco@localhost mysql]$ sudo yum install devtoolset-8-gcc*
[sudo] leco 的密码:
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * centos-sclo-rh: mirrors.aliyun.com
 * centos-sclo-sclo: mirrors.cqu.edu.cn
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
centos-sclo-rh                                         | 3.0 kB     00:00     
centos-sclo-sclo                                       | 3.0 kB     00:00     
(1/2): centos-sclo-rh/x86_64/primary_db                  | 3.1 MB   00:01     
(2/2): centos-sclo-sclo/x86_64/primary_db                | 300 kB   00:06     
正在解决依赖关系
--> 正在检查事务
---> 软件包 devtoolset-8-gcc.x86_64.0.8.3.1-3.2.el7 将被 安装
--> 正在处理依赖关系 devtoolset-8-binutils >= 2.22.52.0.1,它被软件包 devtoolset-8-gcc-8.3.1-3.2.el7.x86_64 需要
--> 正在处理依赖关系 devtoolset-8-runtime,它被软件包 devtoolset-8-gcc-8.3.1-3.2.el7.x86_64 需要
---> 软件包 devtoolset-8-gcc-c++.x86_64.0.8.3.1-3.2.el7 将被 安装
--> 正在处理依赖关系 devtoolset-8-libstdc++-devel = 8.3.1-3.2.el7,它被软件包 devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64 需要
---> 软件包 devtoolset-8-gcc-gdb-plugin.x86_64.0.8.3.1-3.2.el7 将被 安装
---> 软件包 devtoolset-8-gcc-gfortran.x86_64.0.8.3.1-3.2.el7 将被 安装
--> 正在处理依赖关系 devtoolset-8-libquadmath-devel = 8.3.1-3.2.el7,它被软件包 devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64 需要
--> 正在处理依赖关系 libgfortran5 >= 8.1.1,它被软件包 devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64 需要
---> 软件包 devtoolset-8-gcc-plugin-devel.x86_64.0.8.3.1-3.2.el7 将被 安装
--> 正在处理依赖关系 gmp-devel >= 4.1.2-8,它被软件包 devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 需要
--> 正在处理依赖关系 libmpc-devel >= 0.8.1,它被软件包 devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 需要
--> 正在处理依赖关系 mpfr-devel >= 2.2.1,它被软件包 devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 需要
--> 正在检查事务
---> 软件包 devtoolset-8-binutils.x86_64.0.2.30-55.el7.2 将被 安装
---> 软件包 devtoolset-8-libquadmath-devel.x86_64.0.8.3.1-3.2.el7 将被 安装
---> 软件包 devtoolset-8-libstdc++-devel.x86_64.0.8.3.1-3.2.el7 将被 安装
---> 软件包 devtoolset-8-runtime.x86_64.0.8.1-1.el7 将被 安装
---> 软件包 gmp-devel.x86_64.1.6.0.0-15.el7 将被 安装
---> 软件包 libgfortran5.x86_64.0.8.3.1-2.1.1.el7 将被 安装
---> 软件包 libmpc-devel.x86_64.0.1.0.1-3.el7 将被 安装
---> 软件包 mpfr-devel.x86_64.0.3.1.1-4.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

==============================================================================
 Package                        架构   版本              源              大小
==============================================================================
正在安装:
 devtoolset-8-gcc               x86_64 8.3.1-3.2.el7     centos-sclo-rh  30 M
 devtoolset-8-gcc-c++           x86_64 8.3.1-3.2.el7     centos-sclo-rh  12 M
 devtoolset-8-gcc-gdb-plugin    x86_64 8.3.1-3.2.el7     centos-sclo-rh 123 k
 devtoolset-8-gcc-gfortran      x86_64 8.3.1-3.2.el7     centos-sclo-rh  12 M
 devtoolset-8-gcc-plugin-devel  x86_64 8.3.1-3.2.el7     centos-sclo-rh 1.4 M
为依赖而安装:
 devtoolset-8-binutils          x86_64 2.30-55.el7.2     centos-sclo-rh 5.5 M
 devtoolset-8-libquadmath-devel x86_64 8.3.1-3.2.el7     centos-sclo-rh 155 k
 devtoolset-8-libstdc++-devel   x86_64 8.3.1-3.2.el7     centos-sclo-rh 2.7 M
 devtoolset-8-runtime           x86_64 8.1-1.el7         centos-sclo-rh  20 k
 gmp-devel                      x86_64 1:6.0.0-15.el7    base           181 k
 libgfortran5                   x86_64 8.3.1-2.1.1.el7   base           796 k
 libmpc-devel                   x86_64 1.0.1-3.el7       base            32 k
 mpfr-devel                     x86_64 3.1.1-4.el7       base            68 k

事务概要
==============================================================================
安装  5 软件包 (+8 依赖软件包)

总下载量:65 M
安装大小:188 M
Is this ok [y/d/N]: y
Downloading packages:
警告:/var/cache/yum/x86_64/$releasever/centos-sclo-rh/packages/devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f2ee9d55: NOKEY
devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm 的公钥尚未安装
(1/13): devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm   | 5.5 MB   00:02     
(2/13): devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64.r |  12 MB   00:02     
(3/13): devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86 | 155 kB   00:00     
(4/13): devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_ | 1.4 MB   00:00     
(5/13): devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_6 | 2.7 MB   00:01     
(6/13): gmp-devel-6.0.0-15.el7.x86_64.rpm                | 181 kB   00:00     
(7/13): libgfortran5-8.3.1-2.1.1.el7.x86_64.rpm          | 796 kB   00:00     
(8/13): libmpc-devel-1.0.1-3.el7.x86_64.rpm              |  32 kB   00:00     
(9/13): mpfr-devel-3.1.1-4.el7.x86_64.rpm                |  68 kB   00:00     
(10/13): devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_6 | 123 kB   00:05     
(11/13): devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64.rpm   |  12 MB   00:06     
(12/13): devtoolset-8-runtime-8.1-1.el7.x86_64.rpm       |  20 kB   00:05     
(13/13): devtoolset-8-gcc-8.3.1-3.2.el7.x86_64.rpm       |  30 MB   00:19     
------------------------------------------------------------------------------
总计                                             3.4 MB/s |  65 MB  00:19     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo 检索密钥
导入 GPG key 0xF2EE9D55:
 用户ID     : "CentOS SoftwareCollections SIG (https://wiki.centos.org/SpecialInterestGroup/SCLo) <security@centos.org>"
 指纹       : c4db d535 b1fb ba14 f8ba 64a8 4eb8 4e71 f2ee 9d55
 软件包     : centos-release-scl-rh-2-3.el7.centos.noarch (@extras)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
是否继续?[y/N]:y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : devtoolset-8-runtime-8.1-1.el7.x86_64                    1/13 
  正在安装    : 1:gmp-devel-6.0.0-15.el7.x86_64                          2/13 
  正在安装    : mpfr-devel-3.1.1-4.el7.x86_64                            3/13 
  正在安装    : libmpc-devel-1.0.1-3.el7.x86_64                          4/13 
  正在安装    : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64        5/13 
  正在安装    : devtoolset-8-binutils-2.30-55.el7.2.x86_64               6/13 
  正在安装    : libgfortran5-8.3.1-2.1.1.el7.x86_64                      7/13 
  正在安装    : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64                    8/13 
  正在安装    : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64      9/13 
  正在安装    : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64          10/13 
  正在安装    : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64               11/13 
  正在安装    : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64      12/13 
  正在安装    : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64        13/13 
  验证中      : libgfortran5-8.3.1-2.1.1.el7.x86_64                      1/13 
  验证中      : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64                2/13 
  验证中      : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64        3/13 
  验证中      : devtoolset-8-runtime-8.1-1.el7.x86_64                    4/13 
  验证中      : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64           5/13 
  验证中      : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64                    6/13 
  验证中      : 1:gmp-devel-6.0.0-15.el7.x86_64                          7/13 
  验证中      : libmpc-devel-1.0.1-3.el7.x86_64                          8/13 
  验证中      : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64       9/13 
  验证中      : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64     10/13 
  验证中      : mpfr-devel-3.1.1-4.el7.x86_64                           11/13 
  验证中      : devtoolset-8-binutils-2.30-55.el7.2.x86_64              12/13 
  验证中      : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64        13/13 

已安装:
  devtoolset-8-gcc.x86_64 0:8.3.1-3.2.el7                                     
  devtoolset-8-gcc-c++.x86_64 0:8.3.1-3.2.el7                                 
  devtoolset-8-gcc-gdb-plugin.x86_64 0:8.3.1-3.2.el7                          
  devtoolset-8-gcc-gfortran.x86_64 0:8.3.1-3.2.el7                            
  devtoolset-8-gcc-plugin-devel.x86_64 0:8.3.1-3.2.el7                        

作为依赖被安装:
  devtoolset-8-binutils.x86_64 0:2.30-55.el7.2                                
  devtoolset-8-libquadmath-devel.x86_64 0:8.3.1-3.2.el7                       
  devtoolset-8-libstdc++-devel.x86_64 0:8.3.1-3.2.el7                         
  devtoolset-8-runtime.x86_64 0:8.1-1.el7                                     
  gmp-devel.x86_64 1:6.0.0-15.el7                                             
  libgfortran5.x86_64 0:8.3.1-2.1.1.el7                                       
  libmpc-devel.x86_64 0:1.0.1-3.el7                                           
  mpfr-devel.x86_64 0:3.1.1-4.el7                                             

完毕!

通过 scl -l 可以查看当前安装的devtoolset 版本


激活对应的devtoolset

通过如下指令 scl enable devtoolset-8 bash  切换gcc版本(注意,该方法仅当前终端会话有效)

你可以一次安装多个版本的devtoolset

安装的devtoolset是在 /opt/rh 目录下的,如下图

进入devtoolset-8

可以看到当前gcc版本已经切换到8.3.1版本了(注意,该方法仅当前终端会话有效)

每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行source ./enable

所以要想切换到某个版本,只需要执行source /opt/rh/对应版本/enable

可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启

如:

把下面的脚本放入/etc/init.d目录下 并给文件加上执行权限,开机启动

#/bin/bash

source /opt/rh/devtoolset-8/enable

或者直接

替换旧版本的gcc

(该方法不推荐使用)

旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable

mv /usr/bin/gcc /usr/bin/gcc-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc

mv /usr/bin/g++ /usr/bin/g++-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

gcc --version

g++ --version

编译mysql驱动2:

因为上面被gcc的版本问题耽误了,这里接上  编译mysql驱动1

使用高版本gcc  这里使用的是8.3.1

执行make

执行 make install

[leco@localhost mysql]$ make install

/home/leco/Qt5.13.1/5.13.1/gcc_64/bin/qmake -install qinstall /home/leco/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/plugins/sqldrivers/libqsqlmysql.so.debug /home/leco/Qt5.13.1/5.13.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so.debug

/home/leco/Qt5.13.1/5.13.1/gcc_64/bin/qmake -install qinstall -exe ../plugins/sqldrivers/libqsqlmysql.so /home/leco/Qt5.13.1/5.13.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so

/home/leco/Qt5.13.1/5.13.1/gcc_64/bin/qmake -install qinstall /home/leco/Qt5.13.1/5.13.1/Src/qtbase/src/plugins/sqldrivers/lib/cmake/Qt5Sql/Qt5Sql_QMYSQLDriverPlugin.cmake /home/leco/Qt5.13.1/5.13.1/gcc_64/lib/cmake/Qt5Sql/Qt5Sql_QMYSQLDriverPlugin.cmake

可以看到mysql驱动已经被安装到/home/leco/Qt5.13.1/5.13.1/gcc_64/plugins/sqldrivers/libqsqlmysql.so

我们需要的驱动文件

libqsqlmysql.so


以上


​​​​​​​



版权声明:本文为qq_37059136原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。