Como instalar o gcc-7 ou clang 4.0?

27

Desejo experimentar os recursos do C ++ 17 e quero instalar o compilador compatível com o padrão (de preferência o GCC). Sou totalmente novo no Linux e Ubuntu e simplesmente não entendo muito.

Tentei seguir https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test, mas sem sorte. Primeiro eu corri:

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

Pelo que entendi, este comando instala algumas chaves. Em seguida, tentei:

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

Isso retornou:

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

Em seguida, tentei instalar o ramo de desenvolvimento clang:

apt-get install clang-4.0 lldb-4.0

E isso me 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'

O que tudo isso significa? O que há de errado?

nikitablack
fonte
1
O add-apt-repositorycomando que você executou não é o mesmo que o fornecido na página do PPA; portanto, não é de admirar que não funcione. Tente executar o correto.
fkraiem
Eu instalei o testpacote primeiro. Atualizado a pergunta.
Nikitablack
add-apt-repositorycomo o próprio nome indica adiciona um repositório, ele não instala um pacote. Agora você pode fazer apt install gcc-7.
fkraiem
O PPA de teste possui um pacote gcc-7. Você não tentou instalar isso?
Dobey
2
@nikitablack Parece que o gcc 7 não está disponível para 16.04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/… Mas você pode ter uma chance melhor de clang, veja a base desta página: apt.llvm .org
andrew.46

Respostas:

23

Você já pode instalar o gcc-7 e g ++ - 7 deste pacote .

sudo add-apt-repository ppa:jonathonf/gcc-7.1
sudo apt-get update
sudo apt-get install gcc-7 g++-7
Jendas
fonte
9
Sim, isso funciona. Para hoje, este ppa também funcionaadd-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack
clang-4.0.0 é instalado, mas clang -v mostra 3.8.0.
RED
Ambos estão instalados 4.0.0 e 3.8.0, mas por padrão o sistema lê 3.8. O que atrapalha ao usar o Emscripten, que lê isso, mas requer 4.0.0.
RED
esse repositório está sendo executado a partir de uma conexão residencial ou algo assim?
Jonathan Henson
23

Ubuntu 16.04 e abaixo

Existe um PPA oficial de teste do Ubuntu GCC que deve ser preferido:

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

O GCC 7 foi lançado em maio de 2017 , muito tarde para o lançamento principal do 17.04.

Atualmente, o PPA não possui GCC para versões mais recentes, por exemplo, 16.10, apenas LTS 12.04, 14.04 e 16.04, como pode ser visto em: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | instantâneo . Eu acho que tinha 17.04 anteriormente, mas foi removido? Consulte também: https://unix.stackexchange.com/questions/371737/install-gcc-7-on-ubuntu

Testado no Ubuntu 16.04, outubro de 2018.

Ubuntu 17.10 e superior

Possui GCC 7.2 e clang 4 por padrão! 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 em 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 partir de 2018-11.

Padrão no Ubuntu 18.04:

Crosstool-NG

Se você é realmente sério sobre isso, compile e use seu próprio GCC com o Crosstool-NG, conforme explicado em: https://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

Isso permitirá que você use uma ampla variedade de versões do GCC em uma ampla variedade de versões do Ubuntu sem baixar blobs de PPAs nos quais você não confia necessariamente.

Ciro Santilli adicionou uma nova foto
fonte
1

O OP solicita "como instalar ...". Como alternativa, como compilar o Clang 4.0.

Você pode compilar a partir do código-fonte usando o script do repositório GitHub do Microsoft ChakraCore .

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

Atualize LLVM_VERSION="3.9.1"na linha 7 paraLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

Ele fará o download e compilar o Clang 4.0 (e toda a cadeia de ferramentas do compilador) com suporte ao LLVM Gold.

Nuray Altin
fonte
3
O que é "ouro LLVM"?
einpoklum - reinstala Monica
@einpoklum Suponho que seja o plugin LLVM gold para o Gold Linker da Binutils. É usado para otimização do tempo do link.
Ruslan