gcc版本切换 ubuntu

本文介绍了如何在Ubuntu 12.04中安装和切换GCC 4.4及4.6版本,包括手动切换和设置优先级自动切换的方法。

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

f转自:http://www.metsky.com/archives/607.html

目前Ubuntu 12.04自带的GCC版本为4.6,遗憾的是在实际使用时,反而版本越高越好问题越多,所以,一旦遇到编译问题时最好先检查你下载的工程里的readme,默认的编译器版本是否为当前的安装版本,如果不是,就需注意很可能是版本兼容问题(甚至你可能是第一个遇到此BUG的幸运者),初步调试后即可尝试降低版本测试。

目前主流gcc版本有两个,一个是gcc4.4,一个是gcc4.6,下文介绍这两个版本切换和安装方法。

一、gcc 4.6安装

root@ubuntu:~# apt-get install build-essential

执行结果会自动安装最新的gcc4.6版本。

二、gcc 4.4安装

root@ubuntu:~# apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib

三、设置gcc版本切换

1、手动切换

设置后,使用时需手动进行切换选择。

1 root@ubuntu:~# ls /usr/bin/gcc* -l
2 lrwxrwxrwx 1 root root 21 Sep 18 04:42 /usr/bin/gcc -> /etc/alternatives/gcc
3 -rwxr-xr-x 1 root root 224544 Apr 15 22:58 /usr/bin/gcc-4.4
4 -rwxr-xr-x 1 root root 306200 Apr 15 19:45 /usr/bin/gcc-4.6
5 root@ubuntu:~#update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50
6 root@ubuntu:~#update-alternatives --install /usr/bin/g++ gcc /usr/bin/g++-4.4 50

选择方法(根据编译器选择其一):

1 root@ubuntu:~#update-alternatives --config gcc
2 root@ubuntu:~#update-alternatives --config g++

参考选择界面:

01 root@ubuntu:~# update-alternatives --config g++
02 There are 2 choices for the alternative g++ (providing /usr/bin/g++).
03  
04   Selection    Path              Priority   Status
05 ------------------------------------------------------------
06 * 0            /usr/bin/g++-4.4   100       auto mode
07   1            /usr/bin/g++-4.4   100       manual mode
08   2            /usr/bin/g++-4.6   50        manual mode
09  
10 Press enter to keep the current choice[*], or type selection number: 2
11 update-alternatives: using /usr/bin/g++-4.6 to provide /usr/bin/g++ (g++) in manual mode.
12 root@ubuntu:~#

2、设置优先级自动

设置后,系统自动根据优先级选择,假设要设置gcc4.4优先于gcc4.6,设置方法如下:

1 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100
2 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 50
3 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
4 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 50
5 update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.4 100
6 update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 50

设置完成后,gcc自动切换为使用4.4版本,因为上面设置4.4优先级高于4.6

四、查看生效的gcc版本

gcc -v

示例输出:

1 root@ubuntu:~# gcc -v
2 Using built-in specs.
3 COLLECT_GCC=gcc
4 COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
5 Target: i686-linux-gnu
6 Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
7 Thread model: posix
8 gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
9 root@ubuntu:~#
### 实现多个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、付费专栏及课程。

余额充值