科大开源镜像站 GCC源码
https://mirrors.ustc.edu.cn/gnu/gcc/
-
下载gcc-7.3.0
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
-
解压&进入目录
tar -xf gcc-7.3.0.tar.gz cd gcc-7.3.0
-
运行 download_prerequisites 脚本
./contrib/download_prerequisites
-
建立编译输出目录,将所有的中间文件都放到该目录
mkdir gcc-build-7.3.0 cd gcc-build-7.3.0
-
配置
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
参数解释:
–enable-checking=release 增加一些检查,也可以–disable-checking生成的编译器在编译过程中不做额外检查
–enable-languages=c,c++ 你要让你的gcc支持的编程语言
–disable-multilib 取消多目标库编译(取消32位库编译) -
编译
sudo make
这个编译了我一个小时,建议你看个电影
-
编译完成之后,需要把原来的GCC卸载,换成7.3.0版本的
centos:
找到已安装的gcc和gcc-c++包rpm -q gcc rpm -q gcc-c++
删除已经安装低版本
rpm -e [包名]
包名为上一步中显示的包,形如:
gcc-4.8.5-16.el7_4.2.x86_64
gcc-c+±4.8.5-16.el7_4.2.x86_64
那就删除吧rpm -e gcc-4.8.5-16.el7_4.2.x86_64 rpm -e gcc-c++-4.8.5-16.el7_4.2.x86_64
ubuntu:
我是采用的:apt-get remove gcc
-
安装
sudo make install
-
验证版本
查看gcc的安装位置:which gcc
然后再查看版本 /usr/local/bin/gcc -v,通常gcc都安装在该处位置
-
对了,还有一点,我直接尝试gcc -v的时候,提示没有找到命令,应该是系统变量中没有,那就手动添加一下gcc的安装目录
- 直接用export命令:
查看是否已经设好,可用命令export查看,或者直接echo $PATHexport PATH=$PATH:/usr/local/bin
- 这个应该更靠谱一点,要不然有时候sudo的时候会提示找不到gcc命令
(建立/usr/bin/gcc到编译安装gcc的软链接)sudo ln -s /usr/local/bin/gcc /usr/bin/gcc
- 直接用export命令: