前言:
本地一台
redhat linux
虚拟机已经安装了qt5.13.1以及mysql80
详细的安装流程可通过如下链接查看
在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
以上