Jak zainstalować gcc-7 lub clang 4.0?

27

Chcę wypróbować funkcje C ++ 17 i chcę zainstalować kompilator zgodny ze standardem (najlepiej GCC). Jestem całkowicie nowy w Linuksie i Ubuntu i po prostu niewiele rozumiem.

Próbowałem śledzić https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test, ale bez powodzenia. Najpierw pobiegłem:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update

Zrozumiałem, że to polecenie instaluje niektóre klucze. Następnie próbowałem:

sudo add-apt-repository ppa:ubuntu-toolchain-r/gcc-7

To zwróciło:

Error: 'ppa:ubuntu-toolchain-r/gcc-7' invalid

Następnie próbowałem zainstalować gałąź rozwoju clang:

apt-get install clang-4.0 lldb-4.0

I to mi daje

E: Unable to locate package clang-4.0
E: Couldn't find any package by glob 'clang-4.0'
E: Couldn't find any package by regex 'clang-4.0'
E: Unable to locate package lldb-4.0
E: Couldn't find any package by glob 'lldb-4.0'
E: Couldn't find any package by regex 'lldb-4.0'

Co to wszystko znaczy? Co jest nie tak?

nikitablack
źródło
1
add-apt-repositoryKomenda ran nie jest taki sam jak ten podany na stronie PPA, więc nic dziwnego, że nie działa. Spróbuj uruchomić prawidłowy.
fkraiem
testNajpierw zainstalowałem pakiet. Zaktualizowano pytanie.
nikitablack
add-apt-repositoryjak sama nazwa wskazuje dodaje repozytorium, nie instaluje pakietu. Teraz możesz zrobić apt install gcc-7.
fkraiem
Testowy PPA zawiera pakiet gcc-7. Nie próbowałeś tego zainstalować?
dobey,
2
@nikitablack Wygląda na to, że gcc 7 nie jest dostępny dla 16.04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/... Ale możesz mieć większą szansę na clang, spójrz do podstawy tej strony: apt.llvm .org
andrew.46

Odpowiedzi:

23

Możesz już zainstalować gcc-7 i g ++ - 7 z tego pakietu .

sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update
sudo apt-get install gcc-7 g++-7
Jendas
źródło
9
Tak, to działa. Na dzień dzisiejszy ten ppa również działaadd-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack
clang-4.0.0 zostanie zainstalowany, ale clang -v pokazuje 3.8.0.
RED
Oba są zainstalowane 4.0.0 i 3.8.0, ale domyślnie system wyświetla 3.8. Który bałagan podczas korzystania z Emscripten, który czyta to, ale wymaga 4.0.0.
RED
czy to repozytorium działa z połączenia prywatnego czy coś takiego?
Jonathan Henson
23

Ubuntu 16.04 i nowsze wersje

Istnieje oficjalny test PPA Ubuntu GCC, który powinien być preferowany:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7
gcc-7 --version

GCC 7 zostało wydane w maju 2017 r. , Więc jest za późno na wydanie główne 17.04.

PPA nie ma obecnie GCC dla nowszych wydań, np. 16.10, tylko LTS 12.04, 14.04 i 16.04, jak można zobaczyć na stronie : https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | migawka . Myślę, że poprzednio miał 17.04, ale został usunięty? Zobacz także: /unix/371737/install-gcc-7-on-ubuntu

Testowany na Ubuntu 16.04, październik 2018.

Ubuntu 17.10 i nowsze wersje

Domyślnie ma GCC 7.2 i clang 4! https://packages.ubuntu.com/artful/gcc | https://packages.ubuntu.com/artful/clang

$ gcc --version
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0
$ clang --version  
clang version 4.0.1-6 (tags/RELEASE_401/final)

GCC 8 16.04

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version

daje 8.1.0 od 2018-11.

Domyślne w Ubuntu 18.04:

Crosstool-NG

Jeśli naprawdę poważnie podchodzisz do tego, skompiluj i użyj własnego GCC z Crosstool-NG, jak wyjaśniono na stronie : /programming/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

Umożliwi to korzystanie z szerokiej gamy wersji GCC na różnorodnych wersjach Ubuntu bez pobierania obiektów blob z umów PPA, którym niekoniecznie ufasz.

Ciro Santilli
źródło
1

OP prosi o „jak zainstalować ...”. Alternatywnie, jak skompilować Clang 4.0.

Możesz skompilować z kodu źródłowego przy użyciu skryptu z repozytorium GitHub Microsoft ChakraCore .

wget https://raw.githubusercontent.com/Microsoft/ChakraCore/master/tools/compile_clang.sh

Zaktualizuj LLVM_VERSION="3.9.1"w linii 7 doLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

Będzie pobierał i kompilował Clang 4.0 (i cały zestaw narzędzi kompilatora) z obsługą LLVM Gold.

Nuray Altin
źródło
3
Co to jest „złoto LLVM”?
einpoklum
@einpoklum Przypuszczam, że to złota wtyczka LLVM dla Gold Linker od Binutils. Służy do optymalizacji czasu łącza.
Ruslan,