本机默认的GCC版本似乎是4.x,由于项目需要,需安装7.3.0版本GCC,踩坑及排坑过程如下:
(参考文章列于文末)
1. 项目环境配置是Centos 7,而实验室使用的是Ubuntu 16.04。
在Ubuntu上yum install无法正常使用,而且apt-get指令也无法正常下载GCC-7.3.0,故只能手动安装。
安装步骤为: 安装gmp - 安装mpfr - 安装mpc - 安装GCC
这里踩过坑,有一篇教程让先卸载4.x版本的GCC,如未卸载,可跳过至2。
导致的结果是在安装gmp时,报错:找不到C编译器(具体是怎么报的记不清楚了),但是原因应该就是机器上没有了GCC。解决方法:
gcc -v #查看gcc的版本
g++ -v #查看g++的版本
结果应该是找不到gcc、g++,运行以下指令通过apt-get把刚卸载的4.x装回来。
sudo apt-get install gcc-4.8 g++-4.8
安装完成之后通过以下指令查看当前系统安装的所有gcc和g++版本
ls /usr/bin/gcc*
ls /usr/bin/g++*
将某版本的gcc和g++加入候选,最后的数字是优先级,这里设为100。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 100
至此恢复到最初状态。
2. 安装GCC-7.3.0
解压gmp压缩包:(以下代码line by line)
tar -xf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
./configure
make
sudo make install
解压mpfr压缩包:(以下代码line by line)
tar -xf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure
make
sudo make install
解压mpc压缩包:(以下代码line by line)
tar -xf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure
make
sudo make install
开始安装gcc-7.3.0:(以下代码line by line)
sudo make 耗时较长,耐心等待。
tar -xf gcc-7.3.0.tar.gz
cd gcc-7.3.0
mkdir gcc-build-7.3.0
cd gcc-build-7.3.0
sudo ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
sudo make
sudo make install
完成后,查看当前gcc的版本
gcc -v
此时有可能依然是4.8的版本,查看gcc安装的位置,应该是系统变量中没有,那就手动添加一下gcc的安装目录
export PATH=$PATH:/usr/local/bin
这个应该更靠谱一点,要不然有时候sudo的时候会提示找不到gcc命令
sudo ln -s /usr/local/bin/gcc /usr/bin/gcc
完成后,查看当前gcc的版本
gcc -v
至此,大功告成。
参考博文:
Ubuntu16.04多个版本GCC编译器的安装和切换 - 小淼博客 - 博客园这几天在配置交叉编译ARM开发板的linux内核的过程中碰到了很多问题,其中包括了GCC版本太高等问题,由此我打算安装其他老的版本给我的Ubuntu16.04.实验过程如下: 官网的教程是最牛逼的,先https://www.cnblogs.com/uestc-mm/p/7511063.html
http://t.csdn.cn/BCNxJhttp://t.csdn.cn/BCNxJ