说明:以 gcc 5.5 切换到 gcc 4.8 为例
(1)查看系统 gcc 版本:
gcc -v
>>> gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1~16.04)
(2)查看当前已有的 gcc 版本:
ls /usr/bin/gcc*
>>>
/usr/bin/gcc /usr/bin/gcc-ar /usr/bin/gcc-nm /usr/bin/gcc-ranlib
/usr/bin/gcc-4.8 /usr/bin/gcc-ar-4.8 /usr/bin/gcc-nm-4.8 /usr/bin/gcc-ranlib-4.8
/usr/bin/gcc-4.9 /usr/bin/gcc-ar-4.9 /usr/bin/gcc-nm-4.9 /usr/bin/gcc-ranlib-4.9
/usr/bin/gcc-5 /usr/bin/gcc-ar-5 /usr/bin/gcc-nm-5 /usr/bin/gcc-ranlib-5
【可选】若发现没有需要的 gcc 版本,则需要先安装,以安装 gcc4.8 为例:
sudo apt-get install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
或者在 http://ftp.gnu.org/gnu/gcc 下载需要的 gcc.tar.gz
源码文件,按照下面的步骤进行安装:
cd gcc-5.4.0 //进入解压后的gcc文件夹
./contrib/download_prerequisites //下载依赖项
cd ..
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
../gcc-5.4.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
sudo make
sudo make install
make 过程可能会报错:解决方案查看Ubuntu16.04下安装gcc5.4.0过程及报错汇总
In file included from ../../../gcc-5.4.0/libgcc/unwind-dw2.c:401:0:
./md-unwind-support.h: 在函数‘x86_64_fallback_frame_state’中:
./md-unwind-support.h:65:47: 错误: dereferencing pointer to incomplete type ‘struct ucontext’
sc = (struct sigcontext *) (void *) &uc_->uc_mcontext;
(3)设置 gcc 各版本的可选项:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
(4)输入切换命令(需要root权限):
sudo update-alternatives --config gcc
此时输入编号选择 gcc 版本,输入1
,即可切换到 gcc4.8,再次查看 gcc 版本,成功。