How to set Clang 9 as the default C++ compiler on Ubuntu 19.10?
Solution 1
Install clang version 9 from the default Ubuntu repositories in Ubuntu 19.10 and later.
sudo apt install clang-9
/usr/bin/c++
is actually a symbolic link to:/etc/alternatives/c++
which in turn is also a symbolic link to:
/usr/bin/g++
so on Ubuntu c++ is g++ and g++ is g++ explicitly.
Set Clang 9 as the default C++ compiler using c++ so that build processes can still use g++ explicitly if they want to.
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/c++ 40 sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-9 60 sudo update-alternatives --config c++
After running sudo update-alternatives --config c++
a menu of c++ versions will appear and you will be asked to select the default c++ version as follows:
Press <enter> to keep the current choice[*], or type selection number:
Input a selection number from the menu and press Enter.
clang-9 can also be installed in Ubuntu 18.04 if the bionic-proposed/universe repository ( deb http://XX.archive.ubuntu.com/ubuntu/ bionic-proposed universe
) is added to the Ubuntu 18.04 software sources. Replace XX
in deb http://XX.archive.ubuntu.com/ubuntu/ bionic-proposed universe
with your country code.
Solution 2
Step 1: Install prerequisites
sudo apt-get install build-essential xz-utils curl
Step 2: Download the necessary binaries and extract them.
curl -SL http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-pc-linux-gnu.tar.xz | tar -xJC
Step 3: Renaming & moving the binaries.
mv clang+llvm-9.0.0-x86_64-pc-linux-gnu clang_9.0.0
sudo mv clang_9.0.0 /usr/local
Step 4: Tell our system where clang-9 is
export PATH=/usr/local/clang_9.0.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/clang_9.0.0/lib:$LD_LIBRARY_PATH
Step 5: Test the installation
clang++ -stdlib=libc++ -std=c++2a -Wall example.cpp -o example
Note
Clang is not a version of GCC, so it cannot be set as an alternative for /usr/bin/gcc
. Never try it, you may break some packages which require GCC-specific features not available in Clang.
Related videos on Youtube
Admin
Updated on September 18, 2022Comments
-
Admin over 1 year
how do I set Clang 9 as the default C++ compiler on Ubuntu 19.10? I searched the internet, but nothing helped. Thank you for answer :)
-
midjji about 3 yearsSetting update alternatives is a terrible idea! It will look like it works, but a few weeks later nvidia or some other hw supplier will put out a new kernel module which fails to compile with clang and next reboot your computer blackscreens on boot, which requires good linux skills realize what is wrong. So yeah, most every newb who sets update alternatives will have to randomly reinstall their system and wont know why.