红帽linux 下qt 5.13.1 编译 mysql80驱动(内含升级gcc版本)
前言:
本地一台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版本)相关推荐
- linux下qt的odbc库编译,linux qt QODBC连接sql server 驱动 有关问题 ,实在是没辙了
linux qt QODBC连接sql server 驱动 问题 ,实在是没辙了 程序在linux下,现在需要连接windows的sqlserver . db = QSqlDatabase::data ...
- linux下QT工程调用opencv、libtorch,并用cmake编译,及其遇到的一些问题的解决方法
linux下QT工程调用opencv.libtorch,并用cmake编译: 文章目录 一.新建QT工程 二.编写CMakeLists.txt文件 三.各个文件的内容如下: 1.mainwindow. ...
- linux下qt静态编译_自由出土文物的空间_百度空间
linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译_自由出土文物的空间_百度空间 linux下qt静态编译 2012-04-09 13:10 测试通过,贴一下过程,仅用来 ...
- qt调用linux 进程,Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u014746574/article/d ...
- linux上 arm开发环境搭建,详解 LINUX下QT For ARM开发环境搭建过程
LINUX下QT For ARM开发环境搭建过程是本文介绍的内容,不多说,先来看内容.在PC上,我们需要得到两个版本的Qt,分别是:Qt-4.5.2和QtEmbedded-4.5.2-arm.前者包括 ...
- Linux下 QT中 log4cplus 最基本配置及使用
Linux下 QT中 log4cplus 最基本配置及使用 鉴于网上很多使用方法不是很详细,对小白不友好,并且以此作为记录,方便下次配置. 本文是基于我自己下载的版本写的,请各位根据自己下载的版本更改 ...
- linux下qt的文件打包,【最详细最完整】在Linux 下如何打包免安装的QT程序?
版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! https://blog.csdn.net ...
- Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本)
Linux 下qt 程序打包发布(使用linuxdelpoyqt ,shell 脚本) 转载于:https://www.cnblogs.com/zhehan54/p/9549017.html
- Linux下c和cuda混合编译,并生成动态链接库.so和使用
Linux下c和cuda混合编译,并生成动态链接库.so和使用 2016-08-27 14:27 98人阅读 评论(0) 收藏 举报 分类: Linux 版权声明:本文为博主原创文章,未经博主允许不得 ...
最新文章
- java 数据结构源码--线段树
- SprintBoot开发官方指导文档
- shell+中sum的用法_shell高级用法
- 2020年8月编程语言排行榜新鲜出炉 - 编程语言世界的假期
- (十四)消息中间件MQ详解及四大MQ比较
- 监控和剖析数据库操作P6Spy,SQL Profiler,SQL 使用简介
- LeetCode 228. Summary Ranges
- IntelliJ IDEA 2019.3 发布,性能和质量居然牛的飞天了!
- “AI超人”李开复慢下来的投资节奏
- 【语义分割】--SegNet理解
- Frasterrcnn-tensorflow-python3.5-master生成预测坐标位置并存储到xlsl表格中,并生成pr曲线
- 服务器维护必刷稀有宠物,完美国际2稀有宠物坐标及刷新时间(记得去抓)!!!...
- elementUI表格合并行
- Vue - 判断访问网页客户端设备是手机移动端还是 PC 电脑端(判断设备类型是否是移动端手机)
- C++下opencv学习笔记(一)(图像的简单读取丶显示与存储)
- 数字转换成大写人民币
- 264Echarts - GL 路径图(Use linesGL to draw 1 million ny streets.)
- 【笔记】Libig从入门到放弃(续)
- MongoDB-curd总结
- UPS电源及电池内阻综合监控—电池组、单体电池电压、异常告警
热门文章
- 树莓派4B修复双触摸屏触摸问题
- Andro Studio 基于Zing一维码二维码扫描代码
- 4.2.9 Kafka集群与运维, 应用场景, 集群搭建, 集群监控JMX(度量指标, JConsole, 编程获取, Kafka Eagle)
- dw2017不显示动画_10个创建2017年动画视频的最佳工具
- kafka-manger监控部署
- 腾讯云TCP架构高级工程师认证考试大纲、考题下载及说明
- 深度学习笔记~感受野(receptive field)的计算
- 也来说说电影《少年班》中周知庸问王大法的问题
- c++语言程序中,main()函数必须放在程序开始的部分,C++多选题(附答案)
- PowerPivot——DAX(初识)