I want to compile my program with the latest version of gcc.

Ubuntu 14.04 comes with gcc 4.8.2, however there's 4.9.0 available, moreover, I see that it is available as a package: gcc-4.9. I tried to install it

sudo apt-get install gcc-4.9

but it says

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-4.9-base' for regex 'gcc-4.9'
gcc-4.9-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Looks like it is already installed, just not as the default one? How do I utilize it to build my program?

  • If you want to install gcc-4.8 , you need to use sudo apt-get install gcc-4.8. gcc-4.9 ,gcc-4.8 , gcc-4.7, gcc-4.6 all are in Ubuntu main repo. – user224082 May 16 '14 at 1:18
  • 1
    @Dumindu But how do I use gcc-4.9 specifically? – Nickolai Leschov May 16 '14 at 2:33
  • Uninstall others and install 4.9. – user224082 May 16 '14 at 3:55
  • 2
    @Dumindu Wait, did you just tell me to do what I just did? It is not working. – Nickolai Leschov May 16 '14 at 17:53
  • switch to root user : sudo su - goto /usr/bin then run ls -l gcc* and post your output. then I'll post your answer. – αғsнιη Aug 14 '14 at 9:46
up vote 174 down vote accepted

The best way to correctly install gcc-4.9 and set it as your default gcc version use:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9

The --slave, with g++, will cause g++ to be switched along with gcc, to the same version. But, at this point gcc-4.9 will be your only version configured in update-alternatives, so add 4.8 to update-alternatives, so there actually is an alternative, by using:

sudo apt-get install gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8

Then you can check which one that is set, and change back and forth using:

sudo update-alternatives --config gcc

NOTE: You could skip installing the PPA Repository and just use /usr/bin/gcc-4.9-base but I prefer using the fresh updated toolchains.


For GCC 5.X or 6, the packages (and correspondingly, the commands) are just called gcc-5, gcc-6, etc. This is due to the change in GCC's version scheme, where 5.1 is the first GCC 5 release, and future 5.X releases are for bug fixes.

  • Thanks for the edit @muru ...like I said below, I was up for about 3 days very tired and update-alternatives does requires sudo and I think I forgot the (--) before slave. :) So, Thank you. – SudoSURoot Feb 15 '15 at 17:16
  • Try sudo apt-get -f install – SudoSURoot Oct 25 '15 at 2:18
  • 4
    This works perfectly. Also, substitute 5 in for 4.9 to get GCC 5 working on Ubuntu. (My development team now runs both 4.9 and 5 alongside each other following your method.) Thank you, and +1! – CodeMouse92 Nov 6 '15 at 16:52
  • 2
    @hwat It should work for gcc-6 now. – edwinksl Jun 5 '16 at 2:38
  • 1
    This has helped me several times, but I always forget - make sure to apply the same solution to other utilities in the GNU compiler collection you may use! GCOV for example will complain about a version mismatch if you do not, possibly producing incorrect data. – Toby Nov 10 '16 at 10:39

Use the Toolchain Test Builds PPA:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9

I don't think GCC 4.9 is fully available for Ubuntu 14.04 yet. The base package (gcc-4.9-base) and the GCC Go 4.9 compiler (gccgo-4.9) are available, but the other frontends are not. I don't know why.

  • 1
    @SudoSURoot it may or may not be set as default, that's not my concern (there are other posts dealing with that). However, that GCC 4.9's C and C++ frontends can be installed on 14.04 purely from the official repositories is patently false, since the gcc-4.9-base package does not and will not contain a binary frontend. – muru Feb 14 '15 at 22:18
  • You are correct about the base package. As you'll see in my answer, I used the PPA. I posted the comment first, then answered the question as stated, from question... Because simply adding the PPA and installing 4.9 does not enable it which is needed to "use gcc 4.9". I should have deleted the comment after I answered the question. I apologize. My answer is what should be focused on. I jumped to conclusions... and commented to fast. I am actually pretty new with using 14.04 since I got me dedicated server. I'm gong to make sure I didn't down vote and I'll fix it if I did. – SudoSURoot Feb 14 '15 at 22:28
  • @SudoSURoot alright. Even so, unless OP has a problem with calling gcc-4.9 or g++-4.9 instead of gcc or g++, I will stick to not updating the alternatives. – muru Feb 14 '15 at 22:31
  • I totally understand. I build Android systems though, which uses a lot of $(which gcc) and $(which g++) etc... So I always have to have defaults set to the version I want to use. Some of my kernel code wouldn't compile with host gcc-4.8 so I had to update. I just repeated what worked for me. Thanks for reminding me though... Like I said in my edit, from last comment, I may have down voted, prematurely, if so I'll fix it. I had been up for 2 or 3 days working on my kernel source when I posted these. Everyone has their ways... I just found the more thorough my answer the less questions I g – SudoSURoot Feb 14 '15 at 22:40
  • The latest package is gcc-7 ATM – Elder Geek Nov 29 '16 at 17:50

To call gcc 4.9 specifically, use gcc-4.9 at the command prompt.

All the gcc versions you have installed can be called individually by adding a hyphen and the version number at the end of gcc. In your case, gcc-4.8 and gcc-4.9 should be available. In a terminal, type gcc- (note the hyphen) and the push tab twice to see if there are any other versions installed.

Note that the default gcc is likely still 4.8. (Use gcc -v to verify this.) Unfortunately changing the default is not trivial if you installed gcc-4.9 from the default repository as it did not add a update-alternatives entry. If you are interested in how to change the default, see answers to this this question.

  • How do I make a project relying on makefile and possibly other build infrastructure build with gcc-4.9 instead of gcc? – Nickolai Leschov Jul 13 '14 at 13:41
  • The best way to make sure gcc-4.9 is used across build systems is to change the default gcc. Follow the link I provided in my answer for how to do this. Alternatively you could create a symbolic link, though I recommend against this except as last resort since the package manager might complain when updating gcc. If you insist: sudo rm /usr/bin/gcc; sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc. To revert to gcc-4.8 default, just replace gcc-4.9 with gcc-4.8. You may have to do this with g++ and other GNU compilers as well. – holocronweaver Jul 13 '14 at 20:29
  • GCC 4.9 is not available in Ubuntu 14.04 (except for the GCC Go compiler), so while this answer will probably work in Ubuntu 14.10, it doesn't help now. :-) – Søren Løvborg Aug 2 '14 at 17:43
  • Actually it is available in Ubuntu 14.04, though it may have been a mistake: packages.ubuntu.com/trusty/gcc-4.9-base. I have been using it since April. – holocronweaver Aug 3 '14 at 11:46

Ubuntu 16.04 and later

You can already install gcc 7.0 in Ubuntu 18.04 from the default repositories. To install gcc-7 in Ubuntu 17.10, 18.04 and 18.10 open the terminal and type:

sudo apt install gcc-7 

To install gcc-8 in Ubuntu 18.04 and later open the terminal and type:

sudo apt install gcc-8

You can install gcc-7 in Ubuntu 16.04 from ppa:jonathonf/gcc-7.1.

sudo add-apt-repository ppa:jonathonf/gcc-7.1  
sudo apt update  
sudo apt install gcc-7  

You can install gcc-8 in Ubuntu 16.04 from ppa:jonathonf/gcc-8.0.

sudo add-apt-repository ppa:jonathonf/gcc-8.0  
sudo apt update  
sudo apt install gcc-8 

protected by Community Feb 11 '17 at 21:53

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.