Installing newer gcc/g++ versions is easy:
sudo apt-get install gcc-4.7 g++-4.7
If your system does not provide the new versions, you might still be able to get them via a different repository. Add the toolchain repository to your system and update your sources:
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
Now you should be able to install gcc/g++. The real problem comes after that. How to make use of the newer versions?
Option #1 – Uninstall older versions
This is sometimes not an option, because lots of dependencies will be uninstalled which you might need, or you want to keep those versions around for compiling stuff that still uses them.
Option #2 – Use update-alternatives to switch versions
This informative post describes it pretty well. I’ll sum it up here. First remove all update-alternatives:
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
Now add update-alternatives for 4.6 and 4.7 and make the g++ configuration a slave of the gcc configuration, so that when you switch the gcc version, the g++ version is automagically switched too:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
You can now switch compiler versions with:
sudo update-alternatives --config gcc
Option #3 – Use a script to switch versions
This script by Jeff Carr-3 can switch compiler versions for you:
#!/bin/bash
usage() {
echo
echo Sets the default version of gcc, g++, etc
echo Usage:
echo
echo " gcc-set-default-version "
echo
exit
}
cd /usr/bin
if [ -z $1 ] ; then
usage;
fi
set_default() {
if [ -e "$1-$2" ] ; then
echo $1-$2 is now the default
ln -sf $1-$2 $1
else
echo $1-$2 is not installed
fi
}
for i in gcc cpp g++ gcov gccbug ; do
set_default $i $1
done
Download it and make it executable:
chmod 755 gcc-set-default-version
You can now switch compiler versions with it:
sudo sh gcc-set-default-version 4.7
Voila. Works on Raspberry Pi too. Happy compiling!
Thank you. You saved quite considerable time for me with this post.
LikeLike