Come installare gcc-7 o clang 4.0?


27

Voglio provare le funzionalità di C ++ 17 e voglio installare un compilatore conforme standard (preferibilmente GCC). Sono totalmente nuovo su Linux e Ubuntu e semplicemente non capisco molto.

Ho provato a seguire https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test ma senza fortuna. Prima ho corso:

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

Come ho capito questo comando installa alcune chiavi. Successivamente ho provato:

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

Che ha restituito:

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

Successivamente ho provato a installare il ramo di sviluppo di clang:

apt-get install clang-4.0 lldb-4.0

E mi dà

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'

Cosa significa tutto ciò? Cosa c'è che non va?


1
Il add-apt-repositorycomando che hai eseguito non è lo stesso di quello indicato nella pagina di PPA, quindi non c'è da meravigliarsi che non funzioni. Prova a eseguire quello corretto.
fkraiem,

Ho installato testprima il pacchetto. Aggiornato la domanda.
nikitablack,

add-apt-repositorycome suggerisce il nome aggiunge un repository, non installa un pacchetto. Adesso puoi farlo apt install gcc-7.
fkraiem,

Il test PPA contiene un pacchetto gcc-7. Non hai provato a installarlo?
Dobey,

2
@nikitablack Sembra che gcc 7 non sia disponibile per 16.04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/… Ma potresti avere maggiori possibilità con clang, guarda la base di questa pagina: apt.llvm .org
andrew.46

Risposte:


23

È già possibile installare gcc-7 e g ++ - 7 da questo pacchetto .

sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update
sudo apt-get install gcc-7 g++-7

9
Sì, funziona. Ad oggi, questo ppa funziona ancheadd-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack

Viene installato clang-4.0.0 ma clang -v mostra 3.8.0.
ROSSO

Entrambi sono installati 4.0.0 e 3.8.0 ma per impostazione predefinita il sistema legge 3.8. Che fa casino mentre si utilizza Emscripten che legge questo ma richiede 4.0.0.
ROSSO

questo repository funziona da una connessione residenziale o qualcosa del genere?
Jonathan Henson,

23

Ubuntu 16.04 e precedenti

Esiste un test PPA Ubuntu GCC ufficiale che dovrebbe essere preferito:

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 è stato rilasciato a maggio 2017 , quindi troppo tardi per la versione principale 17.04.

Al momento PPA non dispone di GCC per le versioni più recenti, ad esempio 16.10, solo LTS 12.04, 14.04 e 16.04, come si può vedere su: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | istantanea . Penso che avesse 17.04 in precedenza ma è stato rimosso? Vedi anche: /unix/371737/install-gcc-7-on-ubuntu

Testato su Ubuntu 16.04, ottobre 2018.

Ubuntu 17.10 e versioni successive

Ha GCC 7.2 e clang 4 di default! 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 il 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

dà 8.1.0 a partire da 2018-11.

Predefinito in Ubuntu 18.04:

CrossTool-NG

Se sei davvero serio su questo, compila e usa il tuo GCC con Crosstool-NG come spiegato a: /programming/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

Ciò ti consentirà di utilizzare un'ampia varietà di versioni di GCC su un'ampia varietà di versioni di Ubuntu senza scaricare BLOB da PPA di cui non ti fidi necessariamente.


1

OP chiede "come installare ...". In alternativa, come compilare Clang 4.0.

È possibile compilare dal codice sorgente utilizzando lo script dal repository GitHub di Microsoft ChakraCore .

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

Aggiorna LLVM_VERSION="3.9.1"alla riga 7 aLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

Scaricherà e compilerà Clang 4.0 (e l'intera toolchain del compilatore) con il supporto LLVM Gold.


3
Che cos'è "LLVM gold"?
einpoklum - reintegrare Monica il

@einpoklum Suppongo che sia il plug-in gold LLVM per Gold Linker di Binutils. È utilizzato per l'ottimizzazione del tempo di collegamento.
Ruslan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.