¿Cómo instalar g ++ 4.7.2 & c ++ 11 en CentOS 5.x?

8

Estoy tratando de instalar la última versión estable g++y c++11. Mi anfitrión lo hizo yum instally pensó que era lo último, pero no lo es, y ahora dicen que esto está más allá de su nivel de soporte.

He examinado todo sobre cómo hacer esto, y no puedo hacer que nada funcione, o no tengo idea de lo que dice la solución sugerida.

¿Cuál es la forma más fácil de instalar g++4.7.2 y c++11en CentOS 5.9 ?

jasonwryan
fuente
2
No veo nada en eso que (en mis ojos muy inexpertos) requiera alguna nueva característica de C ++. Instalar software adicional (desde el origen, nada menos) no debe tomarse a la ligera (si está usando CentOS, presumiblemente es una aplicación empresarial). No es para alguien con horas de experiencia en Linux, en cualquier caso. Reconsidere sus opciones cuidadosamente.
vonbrand
1
¿Qué requiere lambda tan insistentemente? Quizás su mejor opción es instalar el último Fedora, donde gcc-4.7.2 es el compilador predeterminado, mantenido por la distribución .
vonbrand
2
No soy un experto en C ++, pero "ordenar por N-ésima int en un vector de int" requiere una comparación entre vectores, y ese no es un requisito exótico solo para cumplirse con la última versión de C ++. Claro, podría ser más fácil, pero si algo tan simple no se pudiera hacer desde las primeras versiones de STL, estaría completamente estupefacto. ¿Conseguir un experto en C ++ a bordo?
vonbrand
¿Has considerado las bibliotecas BOOST? Un gran porcentaje de C ++ 11 vino de allí ...
Aaron D. Marasco
c ++ 11 no es un compilador, es un estándar. mira mi respuesta
PersianGulf

Respuestas:

9

De esta respuesta a "Instalar gcc 4.7 en CentOS [6.x]", la forma más fácil de obtener g++4.7 y las herramientas y bibliotecas necesarias para CentOS 5.x es a través del devtoolspaquete:

cd /etc/yum.repos.d
wget http://people.centos.org/tru/devtools/devtools.repo 
yum --enablerepo=testing-devtools-6 install devtoolset-1.0

Dado que se está ejecutando g++de forma manual (en contraposición a través make), que necesita para actualizar su $PATHvariable de modo que su cáscara utilizará el nuevo gcc, g++, etc. binarios:

export PATH=/opt/centos/devtoolset-1.0/root/usr/bin/:$PATH

En este punto, g++debería ser la versión 4.7.0

$ g++ --version
g++ (GCC) 4.7.0 20120507 (Red Hat 4.7.0-5)
Copyright (C) 2012 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.

Tenga en cuenta que la instalación gccy las herramientas y bibliotecas asociadas de esta manera se basan en el mantenedor del repositorio para mantener sus paquetes actualizados.

Si está interesado en mantener su gccactualización, puede considerar construir gccdesde la fuente .

Además, compilar programas con una versión diferente de g++y libstdc++que están instalados en su sistema puede causar todo tipo de diversión , lo que está más allá del alcance de esta respuesta. Puede valer la pena pasar a una distribución de Linux que tenga soporte para lo que está haciendo.

Reed Kraft-Murphy
fuente
He actualizado las instrucciones: el paquete que desea yuminstalar es devtoolset-1.0, ya que contiene otras herramientas de desarrollo necesarias; y querrás actualizar tu $PATHvariable ya que la estás iniciando g++desde la línea de comandos.
Reed Kraft-Murphy
Cuando creo una nueva consola, gcc todavía está en la versión anterior. ¿Cómo hago que la nueva versión sea la predeterminada?
BT
1
Para configurar esto permanentemente, debe agregar la export PATH..línea en su ~ / .profile o ~. / Profile_bash o equivalente: superuser.com/questions/809250/…
BT
Todavía muestra "g ++ (GCC) 4.1.2" después de esto :-(
IllidanS4 quiere que Monica regrese
1

Los administradores de paquetes son geniales, pero (comprensiblemente) generalmente no incluyen la última versión del software. CentOS es una distribución que se centra especialmente en los servidores, favorece la estabilidad (y las pruebas exhaustivas) en lugar de tener lo último y lo más brillante. Aquí están sus soluciones:

Cambiar distribución

Otras distribuciones como Arch Linux, Sabayon Linux o Debian "Sid" incluyen versiones más nuevas mucho más rápido. Puede considerar cambiar las distribuciones.

Construirlo usted mismo

Si está atascado con CentOS, su mejor opción es construir gcc desde la fuente . Significa obtener el código fuente, asegurarse de que las dependencias ya estén presentes en su sistema (si no, estoy seguro de que puede obtenerlas del administrador de paquetes de CentOS), compilar la fuente en un ejecutable binario e instalar el ejecutable en su sistema .

No es la forma más fácil de hacerlo con seguridad, pero aprenderá mucho sobre Unix en el proceso. Asegúrese de leer el documento varias veces para asegurarse de obtener todo y haga preguntas si algo específico no está claro.

Se paciente

En algún momento, esta versión (o más reciente) de gcc / g ++ ingresará al administrador de paquetes. Si espera (hasta varios meses, no estoy muy familiarizado con el ciclo de lanzamiento de CentOS), finalmente obtendrá lo que desea.

rahmu
fuente
1

Hm, soy demasiado nuevo para comentar la respuesta de Reed. Funciono bien para mi. Lo único que quería señalar (¿quizás esto es algo para Reed?) Es que tuve que instalar con una línea de comando ligeramente diferente:

yum --enablerepo=testing-devtools-5 install devtoolset-1.0

(La respuesta de Reed sí --enablerepo=testing-devtools-6, que no funcionó).

Sean Suchter
fuente