当前位置:   article > 正文

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

linux 编译qt连接mysql驱动

前言:

本地一台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

  1. [leco@localhost mysql]$ sudo yum install centos-release-scl
  2. [sudo] leco 的密码:
  3. 已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager
  4. This system is not registered with an entitlement server. You can use subscription-manager to register.
  5. Loading mirror speeds from cached hostfile
  6. * base: mirrors.aliyun.com
  7. * extras: mirrors.aliyun.com
  8. * updates: mirrors.aliyun.com
  9. base | 3.6 kB 00:00
  10. extras | 2.9 kB 00:00
  11. mysql-connectors-community | 2.6 kB 00:01
  12. mysql-tools-community | 2.6 kB 00:00
  13. mysql80-community | 2.6 kB 00:00
  14. updates | 2.9 kB 00:00
  15. 正在解决依赖关系
  16. --> 正在检查事务
  17. ---> 软件包 centos-release-scl.noarch.0.2-3.el7.centos 将被 安装
  18. --> 正在处理依赖关系 centos-release-scl-rh,它被软件包 centos-release-scl-2-3.el7.centos.noarch 需要
  19. --> 正在检查事务
  20. ---> 软件包 centos-release-scl-rh.noarch.0.2-3.el7.centos 将被 安装
  21. --> 解决依赖关系完成
  22. 依赖关系解决
  23. ==============================================================================
  24. Package 架构 版本 源 大小
  25. ==============================================================================
  26. 正在安装:
  27. centos-release-scl noarch 2-3.el7.centos extras 12 k
  28. 为依赖而安装:
  29. centos-release-scl-rh noarch 2-3.el7.centos extras 12 k
  30. 事务概要
  31. ==============================================================================
  32. 安装 1 软件包 (+1 依赖软件包)
  33. 总下载量:24 k
  34. 安装大小:39 k
  35. Is this ok [y/d/N]: y
  36. Downloading packages:
  37. (1/2): centos-release-scl-2-3.el7.centos.noarch.rpm | 12 kB 00:00
  38. (2/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm | 12 kB 00:11
  39. ------------------------------------------------------------------------------
  40. 总计 2.0 kB/s | 24 kB 00:11
  41. Running transaction check
  42. Running transaction test
  43. Transaction test succeeded
  44. Running transaction
  45. 正在安装 : centos-release-scl-rh-2-3.el7.centos.noarch 1/2
  46. 正在安装 : centos-release-scl-2-3.el7.centos.noarch 2/2
  47. 验证中 : centos-release-scl-2-3.el7.centos.noarch 1/2
  48. 验证中 : centos-release-scl-rh-2-3.el7.centos.noarch 2/2
  49. 已安装:
  50. centos-release-scl.noarch 0:2-3.el7.centos
  51. 作为依赖被安装:
  52. centos-release-scl-rh.noarch 0:2-3.el7.centos
  53. 完毕!

安装devtoolset

注意,如果想安装8.版本的,就改成devtoolset-8-gcc,以此类推 (因为本机是centos7,gcc版本也不宜过高,gcc 8.2.0版本可用)

sudo yum install devtoolset-8-gcc*

  1. [leco@localhost mysql]$ sudo yum install devtoolset-8-gcc*
  2. [sudo] leco 的密码:
  3. 已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-manager
  4. This system is not registered with an entitlement server. You can use subscription-manager to register.
  5. Loading mirror speeds from cached hostfile
  6. * base: mirrors.aliyun.com
  7. * centos-sclo-rh: mirrors.aliyun.com
  8. * centos-sclo-sclo: mirrors.cqu.edu.cn
  9. * extras: mirrors.aliyun.com
  10. * updates: mirrors.aliyun.com
  11. centos-sclo-rh | 3.0 kB 00:00
  12. centos-sclo-sclo | 3.0 kB 00:00
  13. (1/2): centos-sclo-rh/x86_64/primary_db | 3.1 MB 00:01
  14. (2/2): centos-sclo-sclo/x86_64/primary_db | 300 kB 00:06
  15. 正在解决依赖关系
  16. --> 正在检查事务
  17. ---> 软件包 devtoolset-8-gcc.x86_64.0.8.3.1-3.2.el7 将被 安装
  18. --> 正在处理依赖关系 devtoolset-8-binutils >= 2.22.52.0.1,它被软件包 devtoolset-8-gcc-8.3.1-3.2.el7.x86_64 需要
  19. --> 正在处理依赖关系 devtoolset-8-runtime,它被软件包 devtoolset-8-gcc-8.3.1-3.2.el7.x86_64 需要
  20. ---> 软件包 devtoolset-8-gcc-c++.x86_64.0.8.3.1-3.2.el7 将被 安装
  21. --> 正在处理依赖关系 devtoolset-8-libstdc++-devel = 8.3.1-3.2.el7,它被软件包 devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64 需要
  22. ---> 软件包 devtoolset-8-gcc-gdb-plugin.x86_64.0.8.3.1-3.2.el7 将被 安装
  23. ---> 软件包 devtoolset-8-gcc-gfortran.x86_64.0.8.3.1-3.2.el7 将被 安装
  24. --> 正在处理依赖关系 devtoolset-8-libquadmath-devel = 8.3.1-3.2.el7,它被软件包 devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64 需要
  25. --> 正在处理依赖关系 libgfortran5 >= 8.1.1,它被软件包 devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64 需要
  26. ---> 软件包 devtoolset-8-gcc-plugin-devel.x86_64.0.8.3.1-3.2.el7 将被 安装
  27. --> 正在处理依赖关系 gmp-devel >= 4.1.2-8,它被软件包 devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 需要
  28. --> 正在处理依赖关系 libmpc-devel >= 0.8.1,它被软件包 devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 需要
  29. --> 正在处理依赖关系 mpfr-devel >= 2.2.1,它被软件包 devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 需要
  30. --> 正在检查事务
  31. ---> 软件包 devtoolset-8-binutils.x86_64.0.2.30-55.el7.2 将被 安装
  32. ---> 软件包 devtoolset-8-libquadmath-devel.x86_64.0.8.3.1-3.2.el7 将被 安装
  33. ---> 软件包 devtoolset-8-libstdc++-devel.x86_64.0.8.3.1-3.2.el7 将被 安装
  34. ---> 软件包 devtoolset-8-runtime.x86_64.0.8.1-1.el7 将被 安装
  35. ---> 软件包 gmp-devel.x86_64.1.6.0.0-15.el7 将被 安装
  36. ---> 软件包 libgfortran5.x86_64.0.8.3.1-2.1.1.el7 将被 安装
  37. ---> 软件包 libmpc-devel.x86_64.0.1.0.1-3.el7 将被 安装
  38. ---> 软件包 mpfr-devel.x86_64.0.3.1.1-4.el7 将被 安装
  39. --> 解决依赖关系完成
  40. 依赖关系解决
  41. ==============================================================================
  42. Package 架构 版本 源 大小
  43. ==============================================================================
  44. 正在安装:
  45. devtoolset-8-gcc x86_64 8.3.1-3.2.el7 centos-sclo-rh 30 M
  46. devtoolset-8-gcc-c++ x86_64 8.3.1-3.2.el7 centos-sclo-rh 12 M
  47. devtoolset-8-gcc-gdb-plugin x86_64 8.3.1-3.2.el7 centos-sclo-rh 123 k
  48. devtoolset-8-gcc-gfortran x86_64 8.3.1-3.2.el7 centos-sclo-rh 12 M
  49. devtoolset-8-gcc-plugin-devel x86_64 8.3.1-3.2.el7 centos-sclo-rh 1.4 M
  50. 为依赖而安装:
  51. devtoolset-8-binutils x86_64 2.30-55.el7.2 centos-sclo-rh 5.5 M
  52. devtoolset-8-libquadmath-devel x86_64 8.3.1-3.2.el7 centos-sclo-rh 155 k
  53. devtoolset-8-libstdc++-devel x86_64 8.3.1-3.2.el7 centos-sclo-rh 2.7 M
  54. devtoolset-8-runtime x86_64 8.1-1.el7 centos-sclo-rh 20 k
  55. gmp-devel x86_64 1:6.0.0-15.el7 base 181 k
  56. libgfortran5 x86_64 8.3.1-2.1.1.el7 base 796 k
  57. libmpc-devel x86_64 1.0.1-3.el7 base 32 k
  58. mpfr-devel x86_64 3.1.1-4.el7 base 68 k
  59. 事务概要
  60. ==============================================================================
  61. 安装 5 软件包 (+8 依赖软件包)
  62. 总下载量:65 M
  63. 安装大小:188 M
  64. Is this ok [y/d/N]: y
  65. Downloading packages:
  66. 警告:/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
  67. devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm 的公钥尚未安装
  68. (1/13): devtoolset-8-binutils-2.30-55.el7.2.x86_64.rpm | 5.5 MB 00:02
  69. (2/13): devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64.r | 12 MB 00:02
  70. (3/13): devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86 | 155 kB 00:00
  71. (4/13): devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_ | 1.4 MB 00:00
  72. (5/13): devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_6 | 2.7 MB 00:01
  73. (6/13): gmp-devel-6.0.0-15.el7.x86_64.rpm | 181 kB 00:00
  74. (7/13): libgfortran5-8.3.1-2.1.1.el7.x86_64.rpm | 796 kB 00:00
  75. (8/13): libmpc-devel-1.0.1-3.el7.x86_64.rpm | 32 kB 00:00
  76. (9/13): mpfr-devel-3.1.1-4.el7.x86_64.rpm | 68 kB 00:00
  77. (10/13): devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_6 | 123 kB 00:05
  78. (11/13): devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64.rpm | 12 MB 00:06
  79. (12/13): devtoolset-8-runtime-8.1-1.el7.x86_64.rpm | 20 kB 00:05
  80. (13/13): devtoolset-8-gcc-8.3.1-3.2.el7.x86_64.rpm | 30 MB 00:19
  81. ------------------------------------------------------------------------------
  82. 总计 3.4 MB/s | 65 MB 00:19
  83. file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo 检索密钥
  84. 导入 GPG key 0xF2EE9D55:
  85. 用户ID : "CentOS SoftwareCollections SIG (https://wiki.centos.org/SpecialInterestGroup/SCLo) <security@centos.org>"
  86. 指纹 : c4db d535 b1fb ba14 f8ba 64a8 4eb8 4e71 f2ee 9d55
  87. 软件包 : centos-release-scl-rh-2-3.el7.centos.noarch (@extras)
  88. 来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
  89. 是否继续?[y/N]:y
  90. Running transaction check
  91. Running transaction test
  92. Transaction test succeeded
  93. Running transaction
  94. 正在安装 : devtoolset-8-runtime-8.1-1.el7.x86_64 1/13
  95. 正在安装 : 1:gmp-devel-6.0.0-15.el7.x86_64 2/13
  96. 正在安装 : mpfr-devel-3.1.1-4.el7.x86_64 3/13
  97. 正在安装 : libmpc-devel-1.0.1-3.el7.x86_64 4/13
  98. 正在安装 : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64 5/13
  99. 正在安装 : devtoolset-8-binutils-2.30-55.el7.2.x86_64 6/13
  100. 正在安装 : libgfortran5-8.3.1-2.1.1.el7.x86_64 7/13
  101. 正在安装 : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64 8/13
  102. 正在安装 : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64 9/13
  103. 正在安装 : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64 10/13
  104. 正在安装 : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64 11/13
  105. 正在安装 : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 12/13
  106. 正在安装 : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64 13/13
  107. 验证中 : libgfortran5-8.3.1-2.1.1.el7.x86_64 1/13
  108. 验证中 : devtoolset-8-gcc-c++-8.3.1-3.2.el7.x86_64 2/13
  109. 验证中 : devtoolset-8-libstdc++-devel-8.3.1-3.2.el7.x86_64 3/13
  110. 验证中 : devtoolset-8-runtime-8.1-1.el7.x86_64 4/13
  111. 验证中 : devtoolset-8-gcc-gfortran-8.3.1-3.2.el7.x86_64 5/13
  112. 验证中 : devtoolset-8-gcc-8.3.1-3.2.el7.x86_64 6/13
  113. 验证中 : 1:gmp-devel-6.0.0-15.el7.x86_64 7/13
  114. 验证中 : libmpc-devel-1.0.1-3.el7.x86_64 8/13
  115. 验证中 : devtoolset-8-gcc-plugin-devel-8.3.1-3.2.el7.x86_64 9/13
  116. 验证中 : devtoolset-8-libquadmath-devel-8.3.1-3.2.el7.x86_64 10/13
  117. 验证中 : mpfr-devel-3.1.1-4.el7.x86_64 11/13
  118. 验证中 : devtoolset-8-binutils-2.30-55.el7.2.x86_64 12/13
  119. 验证中 : devtoolset-8-gcc-gdb-plugin-8.3.1-3.2.el7.x86_64 13/13
  120. 已安装:
  121. devtoolset-8-gcc.x86_64 0:8.3.1-3.2.el7
  122. devtoolset-8-gcc-c++.x86_64 0:8.3.1-3.2.el7
  123. devtoolset-8-gcc-gdb-plugin.x86_64 0:8.3.1-3.2.el7
  124. devtoolset-8-gcc-gfortran.x86_64 0:8.3.1-3.2.el7
  125. devtoolset-8-gcc-plugin-devel.x86_64 0:8.3.1-3.2.el7
  126. 作为依赖被安装:
  127. devtoolset-8-binutils.x86_64 0:2.30-55.el7.2
  128. devtoolset-8-libquadmath-devel.x86_64 0:8.3.1-3.2.el7
  129. devtoolset-8-libstdc++-devel.x86_64 0:8.3.1-3.2.el7
  130. devtoolset-8-runtime.x86_64 0:8.1-1.el7
  131. gmp-devel.x86_64 1:6.0.0-15.el7
  132. libgfortran5.x86_64 0:8.3.1-2.1.1.el7
  133. libmpc-devel.x86_64 0:1.0.1-3.el7
  134. mpfr-devel.x86_64 0:3.1.1-4.el7
  135. 完毕!

 通过 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目录下 并给文件加上执行权限,开机启动

  1. #/bin/bash
  2. source /opt/rh/devtoolset-8/enable

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

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

  1. mv /usr/bin/gcc /usr/bin/gcc-4.8.5
  2. ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
  3. mv /usr/bin/g++ /usr/bin/g++-4.8.5
  4. ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
  5. gcc --version
  6. 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

以上

​​​​​​​

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/661912
推荐阅读
相关标签
  

闽ICP备14008679号