I recently upgraded my Ubuntu version to the latest 20.04 release. Some of my earlier projects (developed on 16.04) were compiling just fine with a gcc version of 5 (gcc-5.4.0).
The default version in Ubuntu 20.04 is gcc-9. I'm trying to switch my gcc version down to 5. I've gone through several posts such as How can I build and install gcc-5.4.0 on Ubuntu 18.04? and How to choose the default gcc and g++ version?, but the fact is that gcc-5 packages aren't even available for 20.04 (see ).
As expected, the command
sudo apt install gcc-5 does not work. Is there a way I can install gcc-5 (and gcc-4) on the latest release of Ubuntu 20.04? It seems like I will somehow have to install packages that are available only in earlier releases such as 16.04 or 18.04.
82 Answers
As mentioned in the comment section, GCC versions lower than 7 are still available in xenial repository. You can follow the following steps to install gcc-5:
- Add
xenialto/etc/apt/sources.list
Open sources.list with sudo
sudo vim /etc/apt/sources.list
Add the following lines in the sources.list file
deb xenial main
deb xenial universe
sudo apt updatesudo apt install g++-5 gcc-5
Reference answer: Install gcc 4.9 at ubuntu 18.04
To change default gcc version to gcc 5 you can follow this link. Below I am adding the steps for completeness.
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 5
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 5
And then select the correct version manually as below:
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
If you find this answer helpful, please also consider upvoting the reference answer from which most of my answer is borrowed.
The only solution that worked for me is:
Manual installing of .deb packages
(sad programmer noises)
- Go to
- Download all .deb packages for gcc compiler version you want, f.e.:
gpc-2.1-3.4_3.4.6-6ubuntu5_amd64.deb cpp-3.4_3.4.6-6ubuntu5_amd64.deb lib32g2c0_3.4.6-6ubuntu5_amd64.deb g++-3.4_3.4.6-6ubuntu5_amd64.deb libg2c0_3.4.6-6ubuntu5_amd64.deb g77-3.4_3.4.6-6ubuntu5_amd64.deb libg2c0-dev_3.4.6-6ubuntu5_amd64.deb gcc-3.4_3.4.6-6ubuntu5_amd64.deb libstdc++6-dbg_3.4.6-6ubuntu5_amd64.deb gcc-3.4-base_3.4.6-6ubuntu5_amd64.deb libstdc++6-dev_3.4.6-6ubuntu5_amd64.deb
- Manually install them by running command, f.e.:
sudo dpkg -i ./gcc-3.4-base_3.4.6-6ubuntu5_amd64.deb sudo dpkg -i ./cpp-3.4_3.4.6-6ubuntu5_amd64.deb sudo dpkg -i ./gcc-3.4_3.4.6-6ubuntu5_amd64.deband so on...
Check the console output errors about package dependencies to figure out the package install order.
- If you encounter error (bug probably) about crossdependency of "g++..." package to "libstdc++..." package and v.v. then run install command to update libstdc++ package with exact version number, f.e.:
sudo apt-get install libstdc++6
- Hooray! Use installed gcc (g++) version by, f.e.:
g++-3.4 -v
P.S.: of you're getting missing libs errors try
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
before the build
1