GCC是什么?
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。) GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU系统是彻底的自由软件。此处,“自由”的含义是它尊重用户的自由 。
为什么要更新?
很多软件编译安装的时候,需要版本都高于4.8版本了。
查看gcc版本
gcc -v
下载编译安装
yum install ncurses ncurses-devel gcc gcc-c++ autoconf automake -y
gnu官网或者其他mirror镜像下载10.2.0版本
wget http://mirror.hust.edu.cn/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz
tar -xzvf gcc-10.2.0.tar.gz
解压并创建安装目录
mkdir /usr/lib/gcc/x86_64-redhat-linux/10.2.0
下载关联文件,需要耐心等待
cd gcc-10.2.0
./contrib/download_prerequisites
2021-01-13 17:19:15 URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar. bz2 [2383840/2383840] -> “./gmp-6.1.0.tar.bz2” [1]
2021-01-13 17:22:35 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284/1279284] -> “./mpfr-3.1.4.tar.bz2” [1]
2021-01-13 17:24:14 URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925/669925] -> “./mpc-1.0.3.tar.gz” [1]
2021-01-13 17:28:52 URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291/1658291] -> “./isl-0.18.tar.bz2” [1]
gmp-6.1.0.tar.bz2: OK
mpfr-3.1.4.tar.bz2: OK
mpc-1.0.3.tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.
创建编译临时目录进入目录
mkdir /root/gcc-build
cd /root/gcc-build/
编译安装
/root/gcc-10.2.0/configure –prefix=/usr/lib/gcc/x86_64-redhat-linux/10.2.0/ –enable-checking=release –enable-languages=c,c++ –disable-multilib
make -j 16
make install
安装好后系统gcc更新版本信息
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
mv /usr/bin/g++ /usr/bin/g++-4.8.5
alternatives –install /usr/bin/gcc gcc /usr/bin/gcc-4.8.5 88 –slave /usr/bin/g++ g++ /usr/bin/g++-4.8.5
alternatives –install /usr/bin/gcc gcc /usr/lib/gcc/x86_64-redhat-linux/10.2.0/bin/x86_64-pc-linux-gnu-gcc 99 –slave /usr/bin/g++ g++ /usr/lib/gcc/x86_64-redhat-linux/10.2.0/bin/x86_64-pc-linux-gnu-g++
alternatives –config gcc
alternatives 可以设置优先级
alternatives –install
其中,
install表示安装
link是符号链接
name则是标识符
path是执行文件的路径
priority则表示优先级