标签归档:gcc4.9

CentOS6.9编译安装新版gcc

最近评论区很多人在反映之前写的 感觉速度很慢?使用BBR优化服务器加速小飞机! 优化加速配置时出错,当时这个教程我是用我的搬瓦工一步一步配置过来的,验证成功了,最近怎么那么多人反映同样的问题呢?

问题如下
在执行编译魔改BBR模块时出错

make[1]: *** [/root/tcp_tsunami.o] Error 1
make: *** [_module_/root] Error 2

之前看到作者说编译这个需要gcc4.9以上的版本,但CentOS6 yum安装最新的版本也才4.4,以为是gcc版本的问题,就折腾编译安装gcc4.9 最后安装成功了,有些依赖要先安装好,经过几次试错并请教Google总算趟平,贴下过程

yum update -y
#安装C和C++的静态库
yum install -y glibc-static libstdc++-static
#安装旧版本的gcc、c++编译器
yum install gcc gcc-c++ -y
#安装wget
yum install wget -y
#下载gcc4.9.4源码
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.gz
tar zxf gcc-4.9.4.tar.gz
cd gcc-4.9.4
#下载依赖的 GMP MPC MPFR
sh ./contrib/download_prerequisites
#按官方建议新建一个文件夹用于编译
mkdir ../gcc_4.9.4_build && cd ../gcc_4.9.4_build
#根据自己的需要修改config项目,建议指定目录便于多版本管理。
../gcc-4.9.4/configure --prefix=/usr/local/gcc-4.9.4/ --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install

安装好之后新版gcc并不是默认使用的版本,如要默认使用新版gcc进行编译,还需要配置环境变量,把以下代码添加到~/.bash_profile

export PATH=/usr/local/gcc-4.9.4/bin:$PATH

可能遇到的问题

出错的时候检查编译目录下的config.log日志文件,查找error信息

 cat ./config.log|grep error

error -static-libstdc++ not implemented

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib

g++: command not found G++没有装或没有更新

yum -y update gcc
yum -y install gcc+ gcc-c++

编译安装需时很长,我的搬瓦工编译了半个多小时才好,还因为占用CPU过多被强制降频了,如不想折腾编译可参考以下yum安装办法

gcc 4.8 安装

curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo
yum install gcc gcc-g++
gcc --version

gcc 4.9 安装

yum install centos-release-scl
yum install devtoolset-3-toolchain
scl enable devtoolset-3 bash
gcc --version

gcc 5.2 安装

yum install centos-release-scl
yum install devtoolset-4-toolchain
scl enable devtoolset-4 bash
gcc --version

scl enable devtoolset-3bash 只是临时覆盖系统原有的GCC引用,如果想永久覆盖,可在root/.bashrc文件中添加如下代码
source /opt/rh/devtoolset-3/enable

参考链接:
Linux下编译安装GCC 4.9.4
CENTOS 6.5 安装gcc 4.9.1
CentOS 6.x通过yum安装gcc 4.8, 4.9, 5.2等高版本GCC

折腾到最后发现并不是gcc版本的问题,是因为使用Teddysun的一键更换BBR内核脚本默认安装最新的BBR内核,这个是一直在更新的,我之前安装时最新版还是4.12,现在已经是4.13了,而魔改模块还不支持4.13。

正在修改一键包,修改后放出。