Difference between revisions of "Installing newer GCC versions in Ubuntu"

From Tuxamito
Jump to: navigation, search
(Created page with " <pre> $ sudo apt-get install gcc g++ gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7 </pre> <pre> $ sudo update-alternatives --remove-all gcc </pre> <pre> $ sudo update-alternatives --...")
 
Line 1: Line 1:
 +
It is often useful to have installed never versions of the compiler in our systems as they often provide better performance and extended features, such as support for newer language features and better debugging information. In the case of ubuntu the new GCC stable packages can be obtained from the [https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test Ubuntu Toolchain PPA].
  
 +
To install them add the ppa repository and update the APT database:
 +
<pre>
 +
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
 +
$ sudo apt-get update
 +
</pre>
 +
 +
Then install the desired GCC and G++ versions.  At the moment of writing this page the latest available version is 7.2.0 (that correspond to the packages gcc-7 g++-7).  Check if newer versions are available.
 
<pre>
 
<pre>
 
$ sudo apt-get install gcc g++ gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7
 
$ sudo apt-get install gcc g++ gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7
 
</pre>
 
</pre>
  
 +
Now the different compiler versions are available in the system by using different command names (that is, ''gcc-5'', ''gcc-6'', etc.), but the default version, the one that is executed with the command ''gcc'', will still be the previous one. To change the default version executed with the ''gcc'' command we have to configure the alternatives in the system. First lets remove any previous configuration with:
 
<pre>
 
<pre>
 
$ sudo update-alternatives --remove-all gcc
 
$ sudo update-alternatives --remove-all gcc
 
</pre>
 
</pre>
 +
 +
Which can show the error ''update-alternatives: error: no alternatives for gcc'' if no previous alternatives were configured.
  
 
<pre>
 
<pre>

Revision as of 11:01, 6 March 2018

It is often useful to have installed never versions of the compiler in our systems as they often provide better performance and extended features, such as support for newer language features and better debugging information. In the case of ubuntu the new GCC stable packages can be obtained from the Ubuntu Toolchain PPA.

To install them add the ppa repository and update the APT database:

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test
$ sudo apt-get update

Then install the desired GCC and G++ versions. At the moment of writing this page the latest available version is 7.2.0 (that correspond to the packages gcc-7 g++-7). Check if newer versions are available.

$ sudo apt-get install gcc g++ gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7

Now the different compiler versions are available in the system by using different command names (that is, gcc-5, gcc-6, etc.), but the default version, the one that is executed with the command gcc, will still be the previous one. To change the default version executed with the gcc command we have to configure the alternatives in the system. First lets remove any previous configuration with:

$ sudo update-alternatives --remove-all gcc

Which can show the error update-alternatives: error: no alternatives for gcc if no previous alternatives were configured.

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 90 --slave /usr/bin/g++ g++ /usr/bin/g++-5
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 80 --slave /usr/bin/g++ g++ /usr/bin/g++-6
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g++-7


$ 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-5   90        auto mode
  1            /usr/bin/gcc-5   90        manual mode
  2            /usr/bin/gcc-6   80        manual mode
  3            /usr/bin/gcc-7   70        manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/gcc-7 to provide /usr/bin/gcc (gcc) in manual mode
$ g++ -v
....
gcc version 7.2.0 (Ubuntu 7.2.0-1ubuntu1~16.04)