GCC 11.1 was finally released yesterday. However, now it can only be built from source, so I'm wondering when we can get it with apt
?
On Ubuntu 20.04, I followed the instructions here:
Which is to:
Update the listed mirrors by adding a line to your /etc/apt/sources.list like this:
sudo add-apt-repository 'deb http://mirrors.kernel.org/ubuntu hirsute main universe'
Choose a mirror based on your location from the list. I chose the kernel mirror as I am in North America.
sudo apt-get update
sudo apt-get install gcc-11
After that which gcc-11
should produce a path to gcc-11. On my machine it was:
which gcc-11
produces: /usr/bin/gcc-11
sudo apt install build-essential manpages-dev software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update && sudo apt install gcc-11 g++-11
Then use update-alternatives
to set default gcc...
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90 --slave /usr/bin/g++ g++ /usr/bin/g++-9 --slave /usr/bin/gcov gcov /usr/bin/gcov-9 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9 --slave /usr/bin/cpp cpp /usr/bin/cpp-9 && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-11 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-11 --slave /usr/bin/cpp cpp /usr/bin/cpp-11;
To sample check settings to see which gcc is default you can run the following, if they show correct resuslts then the rest are fine...
gcc --version;g++ --version;gcov --version;
To reconfigure to any previous gcc version...
sudo update-alternatives --config gcc
You can do this on any version of ubuntu,... enjoy!
Here are my 6 different gcc's living side by side with the default being gcc-11:
$ sudo update-alternatives --config gcc
There are 6 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-11 1010 auto mode
1 /usr/bin/gcc-10 1000 manual mode
2 /usr/bin/gcc-11 1010 manual mode
3 /usr/bin/gcc-5 40 manual mode
4 /usr/bin/gcc-7 700 manual mode
5 /usr/bin/gcc-8 800 manual mode
6 /usr/bin/gcc-9 900 manual mode
Press <enter> to keep the current choice[*], or type selection number:
update_alternatives
. 100 has to 110, hasn't? At least that seems to fix it for me. –
Businesslike sudo apt update
after adding the repo. –
Reproof sudo update-alternatives --config cpp
and see if it is already configured with different options, if not then remove it using sudo update-alternatives --remove-all cpp
. Then if you had already ran the command I posted for gcc, you will need to remove that as well to start fresh, then re-copy and paste the command above to set all of the slaves including cpp appropriately. –
Deutschland update-alternatives: error: alternative cpp can't be slave of gcc: it is a master alternative
–
Trimble The repository 'http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu noble InRelease' is not signed.
–
Aerolite On Ubuntu 20.04, I followed the instructions here:
Which is to:
Update the listed mirrors by adding a line to your /etc/apt/sources.list like this:
sudo add-apt-repository 'deb http://mirrors.kernel.org/ubuntu hirsute main universe'
Choose a mirror based on your location from the list. I chose the kernel mirror as I am in North America.
sudo apt-get update
sudo apt-get install gcc-11
After that which gcc-11
should produce a path to gcc-11. On my machine it was:
which gcc-11
produces: /usr/bin/gcc-11
We currently have no info of when we'll see an APT release of GCC 11.1. Below, I show the step-by-step build instructions that you can hopefully follow along:
You can visit https://gcc.gnu.org/mirrors.html, choose the closest mirror to you, download the source for gcc-11.1.0.tar.gz
Then, make sure to have your build system installed:
sudo apt install gcc g++ make bison binutils gcc-multilib
Yes, you need gcc to build gcc.
Then, unpack the tarball:
cd Downloads # replace with your download location
tar -xzvf gcc-11.1.0.tar.gz
cd gcc-11.1.0
The last thing is to actually build it:
mkdir build
cd build
../configure --enable-multilib && make && sudo make install
That's all! You now have GCC 11.1 installed in Ubuntu.
--enable-multilib
option you must have multilib. Install it with sudo apt install gcc-multilib
. I've added it into the answer as well. –
Diagnostics Casachii's instructions worked for me, with one gotcha. If you run into any issues building GCC yourself using the instructions from casachii, such as build errors reporting missing GMP, MPFR, MPC, etc, then simply do the following:
From the GCC directory (the parent of the "build" directory you just created), run:
./contrib/download_prerequisites
Then when it finishes, run this:
./configure
Finally go back into your build directory as casachii instructs and build GCC 11.x
cd build
../configure --enable-multilib && make && sudo make install
This will take quite a long time. BTW - I would have added this in a comment to casachii's very helpful answer, however I just created this account and apparently I don't have the creds to even make a comment.
© 2022 - 2024 — McMap. All rights reserved.
ubuntu:jammy
comes withgcc-11
andg++-11
(see packages.ubuntu.com/search?keywords=gcc-11). – Tilasudo apt install gcc-11
doesn't work and what can be done instead. – Aerolite