ubuntu GCC 版本切换

本文详细介绍了如何在Linux环境下检查及切换GCC和G++的版本,包括安装特定版本、修改符号链接以及验证版本变更的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)  查看gcc以及g++的版本

gcc  -v

g++ -v

star@ai:~
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1)
star@ai:~
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1)
star@ai:~
$

 

当前的版本是5.5

(2) 现在需要切换到6.0

首先安装gcc6.0

sudo apt-get install gcc-6.0
sudo apt-get install g++-6.0

(3) 进入/usr/bin 目录

ll 查看

lrwxrwxrwx  1 root root           14 10月 12 13:29  g++ -> /usr/bin/g++-5*
-rwxr-xr-x  1 root root        13288 4月  23  2016  g3topbm*
-rwxr-xr-x  1 root root       911744 4月  12  2018  g++-5*
lrwxrwxrwx  1 root root           22 4月  24 13:16  g++-6 -> x86_64-linux-gnu-g++-6*
lrwxrwxrwx  1 root root           22 7月  26 20:25  g++-7 -> x86_64-linux-gnu-g++-7*
-rwxr-xr-x  1 root root        10232 2月   4  2018  gamma4scanimage*
-rwxr-xr-x  1 root root        18504 9月  17 20:52  gapplication*
-rwxr-xr-x  1 root root       277248 6月  22 17:27  gatttool*
-rwxr-xr-x  1 root root        14376 3月  24  2018  gc*
-rwxr-xr-x  1 root root       235600 4月  11  2018  gcalccmd*
lrwxrwxrwx  1 root root           21 10月 12 10:18  gcc -> /etc/alternatives/gcc*
-rwxr-xr-x  1 root root       907648 4月  12  2018  gcc-5*
lrwxrwxrwx  1 root root           22 4月  24 13:16  gcc-6 -> x86_64-linux-gnu-gcc-6*
lrwxrwxrwx  1 root root           22 7月  26 20:25  gcc-7 -> x86_64-linux-gnu-gcc-7*
lrwxrwxrwx  1 root root            8 4月   7  2018  gcc-ar -> gcc-ar-7*

可以发现g++ 链接到g++-5*

(4) gcc版本切换

sudo rm gcc
sudo ln -s /usr/bin/gcc-6* gcc
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 10

sudo rm g++
sudo ln -s /usr/bin/g++-6* g++

 (5)  查看是否切换成功

lrwxrwxrwx  1 root root           14 8月  23 11:03  g++ -> /usr/bin/g++-6*
-rwxr-xr-x  1 root root        13288 4月  23  2016  g3topbm*
lrwxrwxrwx  1 root root           22 4月  24 13:16  g++-6 -> x86_64-linux-gnu-g++-6*
lrwxrwxrwx  1 root root           22 4月  15 12:52  g++-7 -> x86_64-linux-gnu-g++-7*
-rwxr-xr-x  1 root root        10232 2月   4  2018  gamma4scanimage*
-rwxr-xr-x  1 root root        18504 9月  17 20:52  gapplication*
-rwxr-xr-x  1 root root       277248 6月  22 17:27  gatttool*
-rwxr-xr-x  1 root root        14376 3月  24  2018  gc*
-rwxr-xr-x  1 root root       235600 4月  11  2018  gcalccmd*
lrwxrwxrwx  1 root root           14 8月  23 11:03  gcc -> /usr/bin/gcc-6*
-rwxr-xr-x  1 root root       907648 4月  12 04:17  gcc-5*
lrwxrwxrwx  1 root root           22 4月  24 13:16  gcc-6 -> x86_64-linux-gnu-gcc-6*
lrwxrwxrwx  1 root root           22 4月  15 12:52  gcc-7 -> x86_64-linux-gnu-gcc-7*

g++ -v

gcc -v

 

 

ln -s的用法

ln -s  原始文件  快捷方式(目标文件)

转载于:https://www.cnblogs.com/adong7639/p/9777672.html

### 实现多个GCC版本间的切换Ubuntu操作系统中,为了满足不同的开发需求,可以安装并管理多个版本GCC编译器。这不仅有助于解决因特定项目依赖于某个GCC版本而产生的兼容性问题,还能够方便开发者测试代码在不同环境下的表现。 #### 安装所需的不同版本GCC编译器 要实现在同一台机器上拥有多种GCC版本的能力,首先需要确保这些版本已经被正确安装。对于希望使用的每一个GCC版本,都需要执行对应的安装指令: ```bash sudo apt update && sudo apt install gcc-<version> g++-<version> ``` 这里的`<version>`应替换为实际想要安装的具体版本号,比如`gcc-10`, `g++-10`用于安装GCC 10及其配套工具链[^1]。 #### 使用update-alternatives配置默认GCC版本 一旦成功安装了所需的各个GCC版本,则可通过Linux系统的`update-alternatives`机制轻松设置当前工作环境中所采用的默认GCC/G++版本。此过程涉及向系统注册新选项以及设定优先级等操作: ```bash sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-<version> <priority> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-<version> <priority> ``` 其中,`<version>`代表已安装的目标GCC版本;`<priority>`是一个整数值,用来指示当存在多个候选者时哪个应该被选作默认项——通常情况下较高的数字意味着更高的优先权。例如,如果打算让GCC 10成为新的首选编译器,可将其关联命令赋予较大的权重如100[^3]。 #### 切换至指定版本作为全局默认值 完成了上述准备工作之后,便能利用简单的交互界面快速更改正在生效的那个GCC版本: ```bash sudo update-alternatives --config gcc sudo update-alternatives --config g++ ``` 运行以上任一条命令后会弹出一个列表供用户从中挑选期望激活的那一版GCC或G++。按照提示输入对应编号即可完成转换动作。 #### 验证当前使用的GCC版本 最后一步是确认变更是否已经生效。只需简单调用如下命令查看输出结果中的版本信息部分: ```bash gcc --version g++ --version ``` 若一切顺利的话,终端应当返回先前选定的新版本的相关详情。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值