Cómo instalar gcc-4.8

94

Verifiqué la versión de gcc en mi sistema.

Actualmente está en 4.6.3. Leí que gcc-4.8 está fuera.

Intenté los siguientes comandos sin éxito:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

¿Alguien sabe cómo instalar este paquete en 12.04?

MdT
fuente
@ respuesta de MaggotBrain trabajado para mí, aunque he tenido que añadir: sudo apt-get install gcc-multilib como yo estaba corriendo en este tema: superuser.com/questions/432202/make-fails-compiling-gcc
skillman
2
Nota para futuros googlers: si recibe un mensaje de error como una referencia indefinida a 'lexer_line' es por falta de herramientas: bison y flex sudo apt-get install bison sudo apt-get install flex como se indica aquí: http: // stackoverflow. com / preguntas / 4262531 / trouble-building-gcc-4-6
virtualPN

Respuestas:

119

¿GCC-4.8 está disponible para 12.04 Precise ahora?

Actualización : a partir del 6/05/2013, actualmente hay una versión de gcc 4.8.1 para 12.04 (precisa) disponible en https://launchpad.net/~ubuntu-toolchain-r/+archive/test .

La respuesta corta es: gcc-4.8actualmente está disponible para 12.04 (Precise) a través de la cadena de herramientas PPA o compilando la fuente (ver más abajo para más detalles).

Anuncio de lanzamiento

El anuncio para el lanzamiento de gcc-4.8 se realizó el 22 de marzo, por lo que probablemente todavía no lo verá en un repositorio oficial.

Sin embargo, parece que Launchpad tiene un PPA disponible para las compilaciones de prueba de la cadena de herramientas que incluye gcc-4.8, aquí: https://launchpad.net/~ubuntu-toolchain-r/+archive/test

De acuerdo con el registro de cambios y la lista de paquetes , hay debs para i386, amd64, arm y powerpc y se construyeron contra 13.04.

La última versión disponible de gcc, para 12.04, es 4.8.1 y está disponible en la cadena de herramientas PPA.

Agregar la cadena de herramientas / prueba PPA:

Para agregar el PPA a su sistema, abra una terminal ( Ctrl+ Alt+ t) y ejecute los siguientes comandos:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

También se le pedirá que instale una serie de paquetes sugeridos. Estos paquetes se recomiendan, pero son opcionales, para la instalación de gcc-4.8.

¿Qué características de C ++ están disponibles en gcc-4.8 que no están disponibles en gcc-4.7.2?

  • De acuerdo con GNU.ORG , gcc-4.7, admite una serie de características de C ++ 11 .
  • A partir de la versión gcc-4.8, gcc-4.7 no es compatible con 8 de las 64 funciones (consulte C ++ 0x / C ++ 11 Support en GCC )

  • Estas características son:

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • Para obtener una lista completa de los cambios en gcc-4.8, consulte la Lista de cambios

Necesito estas características de gcc en 12.04 Precise, ahora. ¿Cómo puedo conseguirlos?

Construyendo GCC-4.8 desde la fuente:

Si necesita gcc-4.8 en 12.04 ahora, su única opción es construirlo desde la fuente .

Lea las preguntas frecuentes sobre la instalación de GCC antes de la instalación.

Puede descargar gcc-4.8 desde uno de los sitios espejo de gnu.org o directamente desde su servidor SVN .

Aquí está un ejemplo de pasos para compilar desde la fuente (ver aquí para más detalles.) Tenga en cuenta que estos pueden variar dependiendo de su sistema y preferencias.

  1. Descargar el código fuente

    • Hacer un directorio de compilación ( mkdir gcc-build && cd gcc-build)
    • Descargue el archivo fuente: wget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(ajuste este comando para usar un sitio espejo apropiado .
    • Descomprima el archivo ( tar -xvjf <file name>)
  2. Instalar algunas bibliotecas adicionales ( sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev)

  3. Compila la fuente: ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. Ejecutar make(Esto tardará un tiempo en completarse. Ve a hacer un café o hornea algunas galletas. ;-))
  5. Instala el código: sudo make install

Una vez que haya finalizado este proceso, ejecute el comando gcc --versionpara verificar que la instalación se ha completado con éxito. Debería ver algo similar a la siguiente salida:

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

En pocas palabras: agradezca a todas aquellas personas que proporcionan backports de Ubuntu fáciles de instalar para usted. Déles algunas de las galletas que horneó mientras corre make. ;-)

Kevin Bowen
fuente
Excelente respuesta, excepto:E: Unable to locate package gcc-4.8
John Dibling
2
Instalar las bibliotecas adicionales no fue suficiente para mí, pero ejecutarlo lo ./contrib/download_prerequisites.sharregló (de stackoverflow.com/questions/9253695/… ).
Gauthier
77
Nota: También tuve que instalar el paquete g ++ - 4.8 (además de gcc-4.8) para poder compilar el código C ++. De lo contrario, estaba recibiendo el error de compilación: gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8.
Boris Dalstein
Pude instalar con éxito gcc4.8 en Precise
Homunculus Reticulli el
1
@ John Dibling - Efectivamente, el método expuesto sí instala los archivos, sin embargo, como tal, nunca construye ningún paquete ni instala ninguno ... por lo tanto, no puede encontrarlos :-). Bueno, hay una manera rápida de construir automáticamente los paquetes usando la carpeta Debian desde el enlace . Lo hice con éxito para otros paquetes. Esta solución instalará todos los paquetes relacionados, incluidos g ++, etc ...
Antonio
1

Entonces, la respuesta anterior funciona, al menos para la instalación manual. Aunque incluso después sudo make install, la ejecución gccsigue ejecutando la versión de stock 4.6.3. Incluso intentarlo gcc-4.8o gcc-4.8.0no funciona. Correr /app/gcc/4.8.0/bin/gccparece ser lo único que funciona para mí. Quiero decir que es un poco cojo, pero al menos funciona.

usuario149393
fuente
55
[: facepalm:] Antes de llamar "cojo" a las cosas, quizás debería actualizar sus conocimientos de sistemas operativos. Puede comenzar leyendo el concepto de RUTA: en.wikipedia.org/wiki/PATH_(variable)
pszilard
1
Claro que también, ya que no instala ningún paquete con el script DEBIAN / postinst, debe configurar manualmente la versión predeterminada para que su sistema la use a través del cmd de actualización-alternativas . línea ... Si usó --prefix = / usr no hay necesidad de entrometerse con PATH ...
Antonio