¿Cómo instalar la última versión estable de GCC en Linux Mint?

8

Quiero instalar la última versión de GCC (colección del compilador GNU) en Linux Mint 17.3. Actualmente g++ --versiondevuelve 4.8.4, mientras que la última versión estable es 5.3.

llamar
fuente
Por lo general, es posible respaldar una versión más reciente, pero tampoco es trivial. Una alternativa es una instalación local desde la fuente. Sin embargo, desde el punto de vista de la limpieza, es preferible un backport.
Faheem Mitha
¿Hay otra forma de instalarlo, tal vez no como un paquete?
Becko
Sí, como dije anteriormente, una instalación local es una opción. Pero debe tener cuidado de poder desinstalarlo limpiamente después. Construir un paquete es un proceso más difícil, pero más fácil y limpio desde el punto de vista del mantenimiento.
Faheem Mitha
La última versión de Gcc, 9.2, se distribuye como código fuente, si el moderador no elimina este comentario, puede encontrar tiempo para leer el tutorial en su sitio original gcc.gnu.org . La respuesta anterior se eliminó sin una razón válida en mi humilde opinión.
bbaassssiiee

Respuestas:

8

Su Linux Mint viene preinstalado con un paquete GCC. Entonces, primero le recomendaría que verifique si el paquete ya está presente en su sistema escribiendo el siguiente comando en la terminal.

apt-cache search gcc

En caso de que no tenga un paquete de este tipo, use el siguiente comando en la terminal; primero debe agregar el siguiente repositorio:

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

luego use el siguiente comando:

sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7

Siempre hay algo básico que debemos aprender; tómalo como requisito previo antes de Linux ... Aprende a buscar en Google ... intenta hacer una búsqueda más difícil ...

Vinood NK Maheshwari
fuente
¿Por qué querría instalar g++-4.7, que es una versión inferior a la g++-4.8que ya tengo? Quiero actualizar, no degradar.
Becko
era 4.8 y necesita buscar antes el último paquete disponible con apt-cache search gcc. Le di lógica pero realmente bajó mis puntos gr8
Vinood NK Maheshwari
En la actualidad, esta respuesta parece incoherente. Explique por qué el OP desearía instalar v4.7 en lugar de v5 (preferiblemente sin clichés sobre las virtudes del trabajo duro).
agc
reemplace 4.7 por 4.9 y funciona.
Algoman
3

descargue la última versión de gcc

wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2

use el comando: tar -xjfpara descomprimir el archivo

Ingrese el directorio que descomprimió en este momento, digamos $HOME/Downloads/gcc-5.3.0, luego escriba command:

./configure --disable-checking --enable-languages=c,c++,objc 
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3

Instalación de dependencia: la compilación GCC requiere GMP4.2 +, MPFR 2.4.0+ y MPC 0.8.0+ y la compilación esencial

sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential

instalar un compilador de C ++

sudo apt-get install g++

Siguiente tipo:

make 
sudo make install

Edite si aún recibe un mensaje de error como "¡zlib.h no encontrado!" puedes hacer lo siguiente para arreglarlo:

apt-get install zlib1g-dev
GAD3R
fuente
Si tiene algunos errores, por favor comente. Voy a actualizar.
GAD3R
¿Por qué --disable-multilib?
Becko
error:gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
becko
El enlace está muerto.
einpoklum
1

No estoy seguro de cuál debería ser el último, porque siempre salen algunos últimos. Pero puede instalar cualquiera de ellos de esta manera.

Tome gcc-8 como ejemplo:

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

si desea seleccionar gcc-8 / g ++ - 8 con mayor prioridad (20 en este caso), también debe

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8
Zhi Yuan
fuente
0

A decir verdad, simplemente soy demasiado vago para salir de 17.3, funciona para mí. Dicho esto, todavía necesitaba un nuevo gcc. Para compilarlo repetidamente para diferentes objetivos, tengo un script bash (ver más abajo) que modifico y ejecuto (estoy escribiendo mi propio sistema operativo de juguete, por lo tanto, tengo que usar un gcc especialmente generado).

Cambie los directorios en el script a continuación para que coincidan con los directorios que tiene. Mantengo la versión compilada en mi propio directorio para poder cambiar fácilmente entre mi versión compilada y la versión del sistema. Te sugiero que hagas lo mismo. Debe descargar binutils-2.23.2, así como la versión de gcc que le interesa (estoy usando 7.1.0 a continuación). Póngalos en un directorio ~ / contrib junto con el script a continuación.

También es posible que desee cambiar la línea "--enabled-languages ​​= c" a "--enabled-languages ​​= c, c ++, objc": mi proyecto solo necesita C. Otro cambio sería el valor de PLATFORM. Uso "i686-elf" pero eso no funcionará para ti (lo cambié a continuación por algo que funcione para la plataforma de 32 bits). Puede probar "x86_64-linux-gnu" para una plataforma de 64 bits.

Para los curiosos, la razón por la que lo construyo así es porque el proceso de compilación de gcc solía tener un error que impedía la reconstrucción en el directorio de origen. No sé si este error aún existe (lo encontré por última vez en 4.8.0), pero la única solución fue construir explícitamente en un directorio separado si alguna vez quisiste reconstruirlo.

[EDITAR: Realizar la instalación de las dependencias sugeridas anteriormente por GAD3R]

#!/bin/bash

function die() {
   echo $1
   exit 127
}


export PREFIX=/home/lelanthran/opt/cross
export TARGET=i686-linux-gnu
export PATH="$PREFIX/bin:$PATH"

pushd $PWD &> /dev/null
mkdir -p build-binutils
cd build-binutils
../binutils-2.23.2/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --with-sysroot \
   --disable-nls \
   --disable-werror || die "binutils/config error"
make           || die "binutils/make error"
make install   || die "binutils/make install error"

popd &> /dev/null

pushd $PWD &> /dev/null
mkdir -p build-gcc-7.1.0
cd build-gcc-7.1.0
../gcc-7.1.0/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --disable-nls \
   --enable-languages=c \
   --without-headers || die "gcc/config error"
make all-gcc                  || die "gcc/make all-gcc error"
make all-target-libgcc        || die "gcc/make all-target-libgcc error"
make install-gcc              || die "gcc/make install-gcc error"
make install-target-libgcc    || die "gcc/make install-target-libgcc error"
Lelanthran
fuente