¿Cómo instalar gcc-7 o clang 4.0?


27

Quiero probar las características de C ++ 17 y quiero instalar el compilador compatible estándar (preferiblemente GCC). Soy totalmente nuevo en Linux y Ubuntu y simplemente no entiendo mucho.

Traté de seguir https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test pero sin suerte. Primero corrí:

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

Como entendí, este comando instala algunas claves. Luego probé:

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

Eso regresó:

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

Luego intenté instalar la rama de desarrollo clang:

apt-get install clang-4.0 lldb-4.0

Y me da

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'

¿Qué significa todo esto? Que pasa


1
El add-apt-repositorycomando que ejecutó no es el mismo que se da en la página del PPA, por lo que no es de extrañar que no funcione. Intenta ejecutar el correcto.
fkraiem

Instalé el testpaquete primero. Se actualizó la pregunta.
nikitablack

add-apt-repositorycomo su nombre lo indica agrega un repositorio, no instala un paquete. Ahora puedes hacerlo apt install gcc-7.
fkraiem

El PPA de prueba tiene un paquete gcc-7. ¿No has intentado instalar eso?
dobey

2
@nikitablack Parece que gcc 7 no está disponible para 16.04: launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/… Pero podría tener una mejor oportunidad con clang, mire la base de esta página: apt.llvm .org
andrew.46

Respuestas:


23

Ya puede instalar gcc-7 y g ++ - 7 desde este paquete .

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

99
Si, esto funciona. En cuanto a hoy, este ppa también funcionaadd-apt-repository ppa:ubuntu-toolchain-r/test && apt-get update && apt-get install -y gcc-7
nikitablack

clang-4.0.0 se instala pero clang -v muestra 3.8.0.
ROJO

Ambos están instalados 4.0.0 y 3.8.0 pero por defecto el sistema lee 3.8. Lo que daña mientras usa Emscripten que lee esto pero requiere 4.0.0.
ROJO

¿este repositorio se ejecuta desde una conexión residencial o algo así?
Jonathan Henson

23

Ubuntu 16.04 y versiones inferiores

Hay un PPA de prueba oficial de Ubuntu GCC que debería preferirse:

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 fue lanzado en mayo de 2017 , muy tarde para el lanzamiento principal de 17.04.

El PPA actualmente no tiene GCC para versiones más recientes, por ejemplo, 16.10, solo LTS 12.04, 14.04 y 16.04, como se puede ver en: https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test | instantánea . Creo que tenía 17.04 anteriormente pero fue eliminado? Ver también: /unix/371737/install-gcc-7-on-ubuntu

Probado en Ubuntu 16.04, octubre de 2018.

Ubuntu 17.10 y superior

Tiene GCC 7.2 y clang 4 por defecto! 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)

CCG 8 el 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

da 8.1.0 a partir de 2018-11.

Por defecto en Ubuntu 18.04:

Crosstool-NG

Si realmente toma en serio esto, compile y use su propio CCG con Crosstool-NG como se explica en: /programming/847179/multiple-glibc-libraries-on-a-single-host/52454603# 52454603

Esto le permitirá utilizar una amplia variedad de versiones de GCC en una amplia variedad de versiones de Ubuntu sin descargar blobs de PPA en los que no confía necesariamente.


1

OP pregunta "cómo instalar ...". Alternativamente, cómo compilar Clang 4.0.

Puede compilar desde el código fuente utilizando el script del repositorio GitHub de Microsoft ChakraCore .

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

Actualización LLVM_VERSION="3.9.1"en la línea 7 aLLVM_VERSION="4.0.0"

sudo ./compile_clang.sh

Descargará y compilará Clang 4.0 (y toda la cadena de herramientas del compilador) con soporte LLVM Gold.


3
¿Qué es "LLVM gold"?
einpoklum - reinstalar a Monica el

@einpoklum Supongo que es el complemento de oro LLVM para Gold Linker de Binutils. Se utiliza para la optimización del tiempo de enlace.
Ruslan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.