Bootstrap

ubuntu下多个gcc版本切换

Ubuntu系统使用的gcc版本随着发布版本的不同而不同,在编译Android系统时不同的版本推荐用不同的gcc去编译,那么可不可以改变系统的gcc来适应android编译环境的需求呢?答案是可以的。

 先看看我们系统用的gcc和g++是什么版本

gcc -v
可以获得的信息如下:
gcc version 4.4.6 (Ubuntu/Linaro 4.4.6-11ubuntu2)

如果我们想使用gcc4.5怎么办?首先看看有没有安装gcc4.5,

ls /usr/bin/gcc*

结果只有/usr/bin/gcc  /usr/bin/gcc-4.4两个,那么我们需要安装

sudo apt-get install gcc-4.5 gcc-4.5-multilib g++-4.5 g++-4.5-multilib

安装好后输入以下指令:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 44 --slave /usr/bin/g++ g++ /usr/bin/g++-4.4
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 45 --slave /usr/bin/g++ g++ /usr/bin/g++-4.5

其中--slave后面加入g++是当切换gcc版本时也同时切换g++。

接着输入:

sudo update-alternatives --config gcc

会看到如下的选项

There are 3 choices for the alternative gcc (providing /usr/bin/gcc).
 
  Selection    Path              Priority   Status
------------------------------------------------------------
  0            /usr/bin/gcc-4.4   44        auto mode
  1            /usr/bin/gcc-4.4   44        manual mode
  2            /usr/bin/gcc-4.5   45        manual mode
* 3            /usr/bin/gcc-4.6   46        manual mode
 
Press <enter> to keep the current choice[*], or type selection number:

要想用哪个gcc就输入编号吧。

 

如果想删除可选项的话可以键入以下指令:

sudo update-alternatives --remove gcc /usr/bin/gcc-4.5
再用gcc -v来看一下版本是否改变了。
        
;