【介绍】
编译安装:https://amon.org/gcc-compile
【缘起】
编译安装 redis 6 , make 时,报错:
... error: ‘struct redisServer’ has no member named ...
【答案】
GCC版本过低,需要升级到 5.3及以上版本。
编译安装GCC:https://amon.org/gcc
【安装】
参考:https://blog.csdn.net/hello_cmy/article/details/106062327
yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils scl enable devtoolset-9 bash
注意:scl 命令启用只是临时的,退出推出xshell或者重启就会恢复到原来 GCC 版本。
如果要长期生效的话,执行:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
注:执行完此命令后,重新打开xshell窗口就是新版 GCC 。
如果需要安装其他 GCC 版本同理,修改 devtoolset 版本号即可。
【排错】
报错:No match for argument: centos-release-scl
SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。SCL为社区的以下需求而设计:创建和使用软件集合生产系统、概念验证系统、开发测试平台。SCL目前已经支持Fedora和RHEL(衍生版本如CentOS也包含在内)。SCL的创建就是为了给RHEL/CentOS用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。与之相对的是第三方源,它们可能会在已安装的包之间引起冲突。
SCL项目主页:https://www.softwarecollections.org/
参考:https://blog.csdn.net/csdn18740599042/article/details/112691227
参考:https://stackoverflow.com/questions/55345373/how-to-install-gcc-g-8-on-centos
问题发生于 CentOS8;CentOS 7 无此问题。暂时无解。
CentOS 8, to install dev tools:
sudo dnf groupinstall "Development Tools"