本文是部分转载,部分个人修改。
1. 编译新版gcc需要旧版支持(因为要编译, 废话)
2) 如果没有安装gcc, 如果机子有联网,则可以使用以下方法
1)确认是否有安装gcc
gcc -v
gcc -v
2) 如果没有安装gcc, 如果机子有联网,则可以使用以下方法
center-os系统:
yum -y install gcc
yum -y install gcc-g++
2.1)用其自带的下载脚本
./contrib/download_prerequisites
5) 经过漫长的等待后
sudo make install
6) 修改系统使用的gcc/g++
yum -y install gcc
yum -y install gcc-g++
ubuntu系统:
sudo apt-get install gcc
sudo apt-get install g++
2 确认有旧版的gcc之后,下载gcc_4.9.0(https://gcc.gnu.org/mirrors.html)选择里面的snapshot
1)解压
tar -jxvf gcc_4.9.0.tar.bz2
2)下载依赖项
2 确认有旧版的gcc之后,下载gcc_4.9.0(https://gcc.gnu.org/mirrors.html)选择里面的snapshot
1)解压
tar -jxvf gcc_4.9.0.tar.bz2
2)下载依赖项
先进入到解压后的目录
cd gcc-4.9.0
可有如下2中方法下载依赖项 (2.1和2.2任选其一)。
cd gcc-4.9.0
可有如下2中方法下载依赖项 (2.1和2.2任选其一)。
2.1)用其自带的下载脚本
./contrib/download_prerequisites
下载好以后会得到3个目录gmp、mpc、mpfr
2.2) 如果上面脚本连接失败,则可以到国内csdn下载(当然不仅限于此)
2.2) 如果上面脚本连接失败,则可以到国内csdn下载(当然不仅限于此)
http://download.csdn.net/detail/alex_my/7681299
下载好以后会得到3个压缩包,手动解压并建立软链接
tar -jxvf gmp-4.3.2.tar.bz2
tar -zxvf mpc-0.8.1.tar.gz
tar -jxvf mpfr-2.4.2.tar.bz2
ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc
ln -sf mpfr-2.4.2 mpfr
3) 编译前配置configure
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
tar -zxvf mpc-0.8.1.tar.gz
tar -jxvf mpfr-2.4.2.tar.bz2
ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc
ln -sf mpfr-2.4.2 mpfr
3) 编译前配置configure
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
4) 可视机器cpu核心数调整,如双核cpu,加参数-j2。
make -j2
假如编译错误,可能需要安装sudo apt-get install bison build-essential flex
5) 经过漫长的等待后
sudo make install
6) 修改系统使用的gcc/g++
一般gcc/g++会安装到/usr/local/bin中,而编译时默认使用的是/usr/bin中的版本,因此,需要重新制作链接。
sudo rm -rf /usr/bin/gcc
sudo rm -rf /usr/bin/g++
sudo ln -s /usr/local/bin/gcc /usr/bin/gcc
sudo ln -s /usr/local/bin/g++ /usr/bin/g++
7) 最后,检验安装是否成功,使用gcc -v查看版本。会看到:
sudo rm -rf /usr/bin/gcc
sudo rm -rf /usr/bin/g++
sudo ln -s /usr/local/bin/gcc /usr/bin/gcc
sudo ln -s /usr/local/bin/g++ /usr/bin/g++
7) 最后,检验安装是否成功,使用gcc -v查看版本。会看到:
xxx@ubuntu:~/Develop/gcc-4.9.0$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.9.3/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.9.3 20150325 (prerelease) (GCC)
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/4.9.3/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.9.3 20150325 (prerelease) (GCC)