前言:

本地一台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-managerThis 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-managerThis 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 Mdevtoolset-8-gcc-c++           x86_64 8.3.1-3.2.el7     centos-sclo-rh  12 Mdevtoolset-8-gcc-gdb-plugin    x86_64 8.3.1-3.2.el7     centos-sclo-rh 123 kdevtoolset-8-gcc-gfortran      x86_64 8.3.1-3.2.el7     centos-sclo-rh  12 Mdevtoolset-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 Mdevtoolset-8-libquadmath-devel x86_64 8.3.1-3.2.el7     centos-sclo-rh 155 kdevtoolset-8-libstdc++-devel   x86_64 8.3.1-3.2.el7     centos-sclo-rh 2.7 Mdevtoolset-8-runtime           x86_64 8.1-1.el7         centos-sclo-rh  20 kgmp-devel                      x86_64 1:6.0.0-15.el7    base           181 klibgfortran5                   x86_64 8.3.1-2.1.1.el7   base           796 klibmpc-devel                   x86_64 1.0.1-3.el7       base            32 kmpfr-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/bashsource /opt/rh/devtoolset-8/enable

或者直接替换旧版本的gcc(该方法不推荐使用)

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

mv /usr/bin/gcc /usr/bin/gcc-4.8.5ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gccmv /usr/bin/g++ /usr/bin/g++-4.8.5ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++gcc --versiong++ --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

以上

​​​​​​​

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

  1. linux下qt的odbc库编译,linux qt QODBC连接sql server 驱动 有关问题 ,实在是没辙了

    linux qt QODBC连接sql server 驱动 问题 ,实在是没辙了 程序在linux下,现在需要连接windows的sqlserver . db = QSqlDatabase::data ...

  2. linux下QT工程调用opencv、libtorch,并用cmake编译,及其遇到的一些问题的解决方法

    linux下QT工程调用opencv.libtorch,并用cmake编译: 文章目录 一.新建QT工程 二.编写CMakeLists.txt文件 三.各个文件的内容如下: 1.mainwindow. ...

  3. linux下qt静态编译_自由出土文物的空间_百度空间

    linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译 2012-04-09 13:10 测试通过,贴一下过程,仅用来 ...

  4. qt调用linux 进程,Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014746574/article/d ...

  5. linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程

    LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...

  6. Linux下 QT中 log4cplus 最基本配置及使用

    Linux下 QT中 log4cplus 最基本配置及使用 鉴于网上很多使用方法不是很详细,对小白不友好,并且以此作为记录,方便下次配置. 本文是基于我自己下载的版本写的,请各位根据自己下载的版本更改 ...

  7. linux下qt的文件打包,【最详细最完整】在Linux 下如何打包免安装的QT程序?

    版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! https://blog.csdn.net ...

  8. Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)

    Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本) 转载于:https://www.cnblogs.com/zhehan54/p/9549017.html

  9. Linux下c和cuda混合编译,并生成动态链接库.so和使用

    Linux下c和cuda混合编译,并生成动态链接库.so和使用 2016-08-27 14:27 98人阅读 评论(0) 收藏 举报 分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得 ...

最新文章

  1. java 数据结构源码--线段树
  2. SprintBoot开发官方指导文档
  3. shell+中sum的用法_shell高级用法
  4. 2020年8月编程语言排行榜新鲜出炉 - 编程语言世界的假期
  5. (十四)消息中间件MQ详解及四大MQ比较
  6. 监控和剖析数据库操作P6Spy,SQL Profiler,SQL 使用简介
  7. LeetCode 228. Summary Ranges
  8. IntelliJ IDEA 2019.3 发布,性能和质量居然牛的飞天了!
  9. “AI超人”李开复慢下来的投资节奏
  10. 【语义分割】--SegNet理解
  11. Frasterrcnn-tensorflow-python3.5-master生成预测坐标位置并存储到xlsl表格中,并生成pr曲线
  12. 服务器维护必刷稀有宠物,完美国际2稀有宠物坐标及刷新时间(记得去抓)!!!...
  13. elementUI表格合并行
  14. Vue - 判断访问网页客户端设备是手机移动端还是 PC 电脑端(判断设备类型是否是移动端手机)
  15. C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)
  16. 数字转换成大写人民币
  17. 264Echarts - GL 路径图(Use linesGL to draw 1 million ny streets.)
  18. 【笔记】Libig从入门到放弃(续)
  19. MongoDB-curd总结
  20. UPS电源及电池内阻综合监控—电池组、单体电池电压、异常告警

热门文章

  1. 树莓派4B修复双触摸屏触摸问题
  2. Andro Studio 基于Zing一维码二维码扫描代码
  3. 4.2.9 Kafka集群与运维, 应用场景, 集群搭建, 集群监控JMX(度量指标, JConsole, 编程获取, Kafka Eagle)
  4. dw2017不显示动画_10个创建2017年动画视频的最佳工具
  5. kafka-manger监控部署
  6. 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明
  7. 深度学习笔记~感受野(receptive field)的计算
  8. 也来说说电影《少年班》中周知庸问王大法的问题
  9. c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)
  10. PowerPivot——DAX(初识)