0%

gcc/g++多版本共存以及切换

gcc/g++ 多版本间切换

1. 查看 gcc/g++ 版本

  • 查看当前版本
1
2
3
4
5
gcc -v
g++ -v

gcc --version
g++ --version
  • 查看系统已有版本
1
2
ls /usr/bin/gcc*
ls /usr/bin/g++*

2.安装gcc

​ 1获取源码压缩包

1
2
3
4
wget https://repo.huaweicloud.com/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
tar -zxvf gcc-7.3.0.tar.gz
cd gcc-7.3.0
./contrib/download_prerequisites

​ 如果执行上述命令报错,需要执行如下命令在“gcc-7.3.0/”文件夹下下载依赖包:

1
2
3
4
wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
wget http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz
wget http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2

​ 下载好上述依赖包后,执行以下命令,检查是否下载完成:

1
./contrib/download_prerequisites	执行配置、编译和安装命令:

​ 执行配置、编译和安装命令:

1
2
3
./configure --enable-languages=c,c++ --disable-multilib --with-system-zlib --prefix=/usr/local/gcc7.3.0    # prefix是安装目录
make -j192 # 通过grep -w processor /proc/cpuinfo|wc -l查看cpu数,示例为192,用户可自行设置相应参数。
make install

2安装gcc时候会占用大量临时空间,所以先执行下面的命令清空“/tmp”目录。

1
rm -rf /tmp/*

3. 手动切换

  • 先将需要的版本添加到 update-alternatives 中,其中/root/neu/data1/envs请替换成你自己的实际安装目录
1
2
3
4
5
6
# gcc
sudo update-alternatives --install /usr/local/bin/gcc gcc /usr/local/gcc7.3.0/bin/gcc 40
sudo update-alternatives --install /usr/local/bin/gcc gcc /root/neu/data1/envs/gcc10.3.0/bin/gcc 50
# g++
sudo update-alternatives --install /usr/local/bin/g++ g++ /usr/local/gcc7.3.0/bin/g++ 40
sudo update-alternatives --install /usr/local/bin/g++ g++ /root/neu/data1/envs/gcc10.3.0/bin/g++ 50

若想删除,执行命令:

1
2
sudo update-alternatives --remove gcc /usr/local/gcc7.3.0/bin/gcc
sudo update-alternatives --remove g++ /usr/local/gcc7.3.0/bin/g++
  • 手动配置 update-alternatives
1
2
sudo update-alternatives --config gcc
sudo update-alternatives --config g++

4.查看gcc的真实路径

1
ls -l /usr/local/bin/gcc

/usr/bin/gcc -> /etc/alternatives/gcc

1
ls -l /etc/alternatives/gcc

/etc/alternatives/gcc -> /usr/local/gcc7.3.0/bin/gcc

手动修复符号链接

1
sudo ln -sf /usr/local/gcc7.3.0/bin/gcc /usr/bin/gcc

© 2025 CwbyWifsy 保留所有权利