Getting a C++14 Compiler
So, here today are my command-line steps to update the GNU Toolchain v5.x.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
If you already have compiler alternatives you may need these lines.
sudo update-alternatives --remove-all gcc
sudo update-alternatives --remove-all g++
But, everyone will need to swap the default gcc and g++ command-lines to the new paths to make them the defaults.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 20
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
These last two --config commands are only needed if you have multiple alterantives, so don't worry if it tells you it's failed as you only have the one.
Now, if you perform g++ --version, you should see it's a version 5.x series compiler.
Older versions of Codeblocks may start to error on the code completion with some of the C++14 specific commands. So, we need install some prerequisites, and then build the latest 16.01 version from source.
sudo apt-get instal gtk+-2.0 automake libtool libwxgtk2.8-dev libwxbase2.8-dev
tar -xvf codeblocks_16.01.tar.gz
The next step is interesting, we need to iteratively check:
Running this will show you anything wrong with your machine environment, any missing dependences etc... However, once bootstrap runs cleanly, you can continue below.
sudo make install
The make step takes quite a time, the more cores & RAM you have the better, on an 4 core (8 thread) machine with 8 GB of ram, I've found it takes about 10 minutes. On a single core machine as the poor VM I had was assigned, it took a lllooooottttt longer.
Once complete we needed to use the text editor of our choice, in sudo mode....
sudo nano /etc/ld.so.conf
And to this we need to add the line:
Save the file, exit the editor and run:
Once this was complete, we can run up Codeblocks, and see it's version 16.01.
And we can further see the nice new C++14 options in the build options:
Even the code highlighting recognises the make_shared operation:
Voila, if this helped, do check out my other posts, and code, leave a tip with my new tip jar! And I'll be making a video of this one soon, as it's so useful.