Ubuntu / Raspberry 下切换GCC版本

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

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

一、gcc最新版本安装

[email protected]:~# apt-get install build-essential

这里build-essential会自动安装最新版本的gcc,如果需要指定使用旧版本gcc,只能再次手动安装。

二、gcc 4.4安装

gcc 4.4是目前很多工程指定的一个版本,安装方法如下:

[email protected]:~# apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib

三、设置gcc版本切换

1、手动切换

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

[email protected]:~# ls /usr/bin/gcc* -l
lrwxrwxrwx 1 root root 21 Sep 18 04:42 /usr/bin/gcc -> /etc/alternatives/gcc
-rwxr-xr-x 1 root root 224544 Apr 15 22:58 /usr/bin/gcc-4.4
-rwxr-xr-x 1 root root 306200 Apr 15 19:45 /usr/bin/gcc-4.6
[email protected]:~#update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50
[email protected]:~#update-alternatives --install /usr/bin/g++ gcc /usr/bin/g++-4.4 50

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

[email protected]:~#update-alternatives --config gcc
[email protected]:~#update-alternatives --config g++

参考选择界面:

[email protected]:~# update-alternatives --config g++
There are 2 choices for the alternative g++ (providing /usr/bin/g++).

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/g++-4.4   100       auto mode
  1            /usr/bin/g++-4.4   100       manual mode
  2            /usr/bin/g++-4.6   50        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/g++-4.6 to provide /usr/bin/g++ (g++) in manual mode.
[email protected]:~# 

2、设置优先级自动

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

update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 50
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 100
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 50
update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.4 100
update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 50

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

四、查看生效的gcc版本

gcc -v

示例输出:

[email protected]:~# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.6/lto-wrapper
Target: i686-linux-gnu
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
Thread model: posix
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
[email protected]:~# 

Error in `gcc‘: double free or corruption (top):
->use gcc-6 instead
https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=139091&p=922980

来源: http://www.metsky.com/archives/607.html

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/jins-note/p/9513583.html

时间: 2024-07-29 21:49:30

Ubuntu / Raspberry 下切换GCC版本的相关文章

在MAC下切换GCC编译器的办法(MacPorts)

在MAC下切换GCC编译器的办法(MacPorts) 这里的办法是通过port命令选项实现的,所以需要先安装MacPorts,具体的安装步骤就不多说了,切换不同版本gcc的命令如下:执行:$ sudo port select --list gcc显示:Password:Available versions for gcc:       gcc42       llvm-gcc42       mp-gcc45 (active)       none选择llvm-gcc42作为编译器,执行:$ s

Ubuntu Linux 如何切换jre版本

安装新版jre: sudo apt-get install openjdk-7-jre sudo apt-get install openjdk-7-jdk 切换版本: sudo update-alternatives --config java 然后就可以选择想要的jre版本啦 Ubuntu Linux 如何切换jre版本,布布扣,bubuko.com

Android实战技巧之八:Ubuntu下切换JDK版本【转】

本文转载自:http://blog.csdn.net/lincyang/article/details/42024565 Android L之后推荐使用JDK7编译程序,这是自然发展规律,就像是4年前编译android 1.6需要使用JDK5一样. 多版本JDK是可以共存的,只需要使用update-alternatives工具就可以随时将它们切换.下面描述安装openjdk和Oracle jdk(对不住了sun)以及切换版本的过程. 一.安装openjdk7 [plain] view plain

Android实战技巧之八:Ubuntu下切换JDK版本

Android L之后推荐使用JDK7编译程序,这是自然发展规律,就像是4年前编译Android 1.6需要使用JDK5一样. 多版本JDK是可以共存的,只需要使用update-alternatives工具就可以随时将它们切换.下面描述安装openjdk和oracle jdk(对不住了sun)以及切换版本的过程. 一.安装openjdk7 $ sudo apt-get update $ sudo apt-get install openjdk-7-jdk 安装完成后找到其安装路径: $ dpkg

Ubuntu如何安装切换jdk版本

在配置java jdk的时候,总是存在一些版本不兼容的问题,下面就说说如何切换jdk版本. 我系统自带的jdk是1.6执行java  -version 1.jdk安装 首先可以使用命令直接进行jdk安装 sudo apt-get install openjdk-7-jre openjdk-7-jdk. 也可下载安装包后通命令安装 tar -zxvf jdk-7u10-linux-i586.tar.gz 2.添加jdk: update-alternatives --install /usr/bin

Mac环境下升级gcc版本--rocksdb

前言 在mac环境下编译rocksdb,需要配置依赖的编译环境,其中有一项比较麻烦:c++编译要支持C++11,但是在mac环境安装xcode-select --install之后,已经安装有了gcc-4.2.1,而且不容易升级,因为已经存在/usr/bin/gcc,想覆盖这个命令文件比较麻烦. OS X: Install latest C++ compiler that supports C++ 11: Update XCode: run xcode-select --install (or

Centos下更新 gcc 版本至 GCC 6.1.0

最近linux的gcc版本更新到gcc 6.1.0 版本了,我查看了一下我的机器上的GCC版本.... ------------- GCC 4.4.7    我去,这也太low了吧,而且我们知道的GCC 4.4.7 是不支持 C++11 的,我的脾气比较暴躁,果断要升级到GCC 6.1.0 版本! 我开始的时候使用了 yum update gcc 命令,可恨的是机器又将gcc 4.4.7 版本重新给我装了一遍,你说可恨不可恨,于是我找到了 gcc 的资源了,如下: URL:  http://ft

ubuntu 下切换jdk版本

因为ubuntu 会自带open-jdk预装在系统内,当我们需要在 ubuntu下 安装jdk 的时候 ,发现 即使配置好环境变量后, 输入 java -version 版本还是依然没有发生变化,我们需要以下2个步骤切换/usr/local/java 指向的 jdk ############################################## #第一步 我们需要把新版本的java 命令更新到系统的 /usr/bin/ 下  301为优先级 ####################

Mac下切换Python版本

Mac下有多个版本的Python时,需要进行版本切换.我使用的是anaconda,在终端下进行包安装时,默认Python版本是MacOS自带的Python,需要进行手动的版本切换. # 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc # 更新bashrc以立即生效 source ~/.bashrc 以我主机为例,切