提示的报错信息
XML/HTML代码
- CMake Error at cmake/os/Linux.cmake:71 (MESSAGE): GCC 7.1 or newer is required
查看了下
XML/HTML代码
- /www/server/mysql/src/cmake/os/Linux.cmake
XML/HTML代码
- # We require at least GCC 7.1 Clang 5
- IF(NOT FORCE_UNSUPPORTED_COMPILER)
- IF(MY_COMPILER_IS_GNU)
- IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.1)
- MESSAGE(FATAL_ERROR "GCC 7.1 or newer is required") //这是71行
- ENDIF()
- ELSEIF(MY_COMPILER_IS_CLANG)
- IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
- MESSAGE(FATAL_ERROR "Clang 5 or newer is required!")
- ENDIF()
- ELSE()
看了下感觉向需要升级下GCC版本,那就升级下高层次的版本。gcc7版本会报错。8版本可以。最好先卸载掉之前的版本。
第一步:安装centos-release-scl
XML/HTML代码
- sudo yum install centos-release-scl
第二步:安装devtoolset(安装debtoolset / gcc),注意,如果想安装9.版本的,就改成devtoolset-9-gcc,以此类推,默认安装的devtoolset是在 /opt/rh 目录下的。
XML/HTML代码
- sudo yum install devtoolset-8-gcc*
第三步:激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本。
XML/HTML代码
- scl enable devtoolset-8 bash
这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本
第四步:启动
每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行:
XML/HTML代码
- source ./enable
所以要想切换到某个版本,只需要执行:
XML/HTML代码
- source /opt/rh/devtoolset-8/enable
可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启。
第五步:直接替换旧的gcc
旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable
C++代码
- ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/
- ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/
XML/HTML代码
- mv /usr/bin/gcc /usr/bin/gcc-4.8.5
- mv /usr/bin/g++ /usr/bin/g++-4.8.5