转载请注明出处,如果您觉得文章有用,就赏我个鸡腿吧!
安装gcc或者升级gcc前提是必须已经有gcc,玄妙吧^ - ^
安装前准备工作
- 创建通用安装目录
mkdir -p /home/xyg/install #创建安装脚本通用目录
cd /home/xyg/install
以下2步全新安装时才有必要!
- 查看gcc是否已安装,出现 -bash: gcc: command not find 表示未安装gcc
gcc -v
- yum安装gcc
dnf -y install gcc gcc-c++
- 安装依赖,不安装会在编译gcc时报错哦( tar (child): lbzip2:无法 exec: 没有那个文件或目录 )
yum -y install bzip2
创建安装脚本
vim /home/xyg/install/install-nginx.sh #新建并编辑nginx安装脚本
将以下内容复制进文件,保存退出
#! /bin/bash
# 下载地址 http://ftp.gnu.org/gnu/gcc/
mkdir -p /home/xyg/gcc
cd /home/xyg
wget http://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.xz
tar -xvJf gcc-9.3.0.tar.xz -C gcc --strip-components=1
cd gcc
root=`pwd`
echo '开始下载依赖包'
$root/contrib/download_prerequisites ##下载gcc依赖包
echo '结束下载依赖包'
$root/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
corenum=`cat /proc/cpuinfo | grep "core id" | wc -l`
realnum=`expr $corenum \* 2`
make -j$realnum
make install
安装
bash install-gcc.sh
查看安装是否成功
gcc -v #如果版本已经是9.3.0,那就说明安装或者升级成功了
扩展知识
make -j参数
-j参数是为了充分利用计算机cpu资源,加快编译速度,其值一般是当前cpu核数的2倍为宜
所以才有安装脚本中的
corenum=`cat /proc/cpuinfo | grep "core id" | wc -l` #查看当前环境核心数量
realnum=`expr $corenum \* 2`
不过需要注意,项目的Makefile要规范,正确设置好依赖关系,并行编译才能取得最佳的效果。
其他一些加速编译的工具
ccache 缓存编译结果,加速编译速度
distcc 多台计算机同时编译,加速编译速度
一些旧版本的linux如,centos6
升级还要运行如下命令
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/x86_64-pc-linux-gnu-gcc 40
#添加新GCC到可选项,倒数第三个是名字,倒数第二个参数为新GCC路径,最后一个参数40为优先级,设大一些之后就自动使用新版了
端口ssh,重新打开ssh,gcc -v就可以查看到升级成功了
gcc为什么要升级
比如:php编译时,GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升。
其他的好处欢迎大家补充。