gcc 5.1.0出来也有一段时间了,今天终于决定将gcc升级了,顺便记录下自己的过程。升级前后版本对比,如图1,图2。
第一步:下载gcc5.1.0及所需组件
进入gcc官网,选择一个镜像站下载,比如我选择的是Michigan
下载必备组件,gmp-6.0.0,mpfr-3.1.2,mpc-1.0.3
第二步:安装必备组件
注:我将所有的组件全部提取到$HOME/Dev/目录下,可以使用指令提取或者鼠标右键压缩包提取,根据自己的喜好选择。
然后输入以下指令:
cd $HOME/Dev/mpc-1.0.3
./configure --prefix=/usr/local
make
sudo make install
cd $HOME/Dev/mpfr-3.1.2
./configure --prefix=/usr/local
make
sudo make install
cd $HOME/Dev/gmp-6.0.0a
./configure --prefix=/usr/local
make
sudo make install
注:顺序不可以弄乱,它们彼此有依赖关系。
第三步:安装gcc 5.1.0
configure后面的选项可以参考gcc官网给出的configure详解
cd $HOME/Dev/gcc-5.1.0
./configure --prefix=/usr/local --program-suffix=-5.1.0 --enable-threads=posix --enable-languages=c,c++ --disable-multilib
make
sudo make install
第四步:添加路径
此时安装完成之后,gcc的可执行文件应该在
/usr/local/bin
因此为了能够正常使用gcc,修改.banshrc文件,追加下面语句
PATH=/usr/local/bin:$PATH
此时就可以运行了,使用方法是:
gcc-5.1.0 example.c -o emample
第四步:建立链接
嗯,你没有看错,就是第四步。这一步跟上面的第四步(添加路径)执行其中的一个便可,无需同时执行。
终端中输入如下指令(需root权限):
ln -s /usr/local/bin/gcc-5.1.0 /usr/bin/gcc
ln -s /usr/local/bin/g++-5.1.0 /usr/bin/g++
ln -s /usr/local/bin/c++-5.1.0 /usr/bin/c++
完成之后,检测版本,输入如下指令:
gcc --version
g++ --version
c++ --version
图1:
图2:
出现的问题:
- 版本没有改变
采用第一个步骤四安装后,输入
gcc --version
仍是4.8.2的版本,这个很正常,因为安装的时候我加入了
--program-suffix=-5.1.0
因此检测版本的方法应该是
gcc-5.1.0 --version
- 其他教程中没有下载第二步的组件同样安装成功
运行下述指令可以自动下载安装所有需要的组件,不过我使用这种方法的时候没有成功,编译gcc的时候,提示仍然需要那几个组件。
./contrib/download_prerequisites
- No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
sudo apt-get install m4
- checking for int64_t underlying type... long long configure: error: error verifying int64_t uses long long make[2]: *** [configure-stage1-gcc] error 1
sudo apt-get install g++
- 其他问题
可以参考官网的详细步骤判断