Esta página pretende ofrecer una guía para evitar algunos problemas comunes al instalar GCC, los documentos oficiales de instalación están en la sección Instalando GCC de la documentación principal de GCC. N.B. estos documentos de instalación se refieren al tronco de desarrollo, las instrucciones de instalación para las versiones liberadas se incluyen en las fuentes de liberación.
Para la mayoría de la gente la forma más fácil de instalar GCC es instalar un paquete hecho para su sistema operativo. El proyecto GCC no proporciona binarios preconstruidos de GCC, sólo el código fuente, pero todas las distribuciones de GNU/Linux incluyen paquetes para GCC. Los sistemas basados en BSD incluyen GCC en sus colecciones de puertos. Para otros sistemas operativos la página Instalando GCC: Binarios lista algunas fuentes de terceros de binarios de GCC.
Si no puede encontrar los binarios adecuados para su sistema, o necesita una versión más reciente que la disponible, tendrá que construir GCC desde el código fuente para poder instalarlo.
Construyendo GCC
Mucha gente se apresura a intentar construir GCC sin leer los documentos de instalación correctamente y cometen uno o más de estos errores comunes:
-
No ejecute ./configure desde el directorio fuente, esto no está soportado. Necesita ejecutar configure desde fuera del directorio fuente, en un directorio separado creado para la compilación (esto es un FAQ)
-
si GCC enlaza dinámicamente con las bibliotecas de soporte GMP, MPFR o MPC entonces las bibliotecas compartidas relevantes deben estar en la ruta del enlazador dinámico, tanto cuando se construye gcc como cuando se utiliza el compilador instalado (esto también es una FAQ)
Librerías de soporte
Véase Instalación de GCC: Requisitos para el software necesario para construir GCC. Si no tiene las bibliotecas de soporte de GMP, MPFR y MPC ya instaladas como parte de su sistema operativo, entonces hay dos formas sencillas de proceder, y una difícil y propensa a errores. Por alguna razón la mayoría de la gente elige la forma difícil. Las formas fáciles son:
-
Si proporciona versiones suficientemente recientes, utilice el sistema de gestión de paquetes de su sistema operativo para instalar las bibliotecas de soporte en ubicaciones estándar del sistema. Para sistemas basados en Debian, incluyendo Ubuntu, debe instalar los paquetes libgmp-dev, libmpfr-dev y libmpc-dev. Para los sistemas basados en RPM, incluidos Fedora y SUSE, debe instalar los paquetes gmp-devel, mpfr-devel y libmpc-devel (o mpc-devel en SUSE). Los paquetes instalarán las bibliotecas y las cabeceras en los directorios estándar del sistema para que puedan encontrarse automáticamente al construir GCC.
-
Alternativamente, después de extraer el archivo fuente de GCC, simplemente ejecute el script ./contrib/download_prerequisites en el directorio fuente de GCC. Esto descargará las bibliotecas de apoyo y creará enlaces simbólicos, haciendo que se construyan automáticamente como parte del proceso de construcción de GCC. Establezca GRAPHITE_LOOP_OPT=no en el script si desea construir GCC sin ISL, que sólo es necesario para las optimizaciones opcionales de bucle de Graphite.
La forma difícil, que no se recomienda, es descargar los fuentes para GMP, MPFR y MPC, luego configurar e instalar cada uno de ellos en ubicaciones no estándar, luego configurar GCC con –with-gmp=/some/silly/path/gmp –with-mpfr=/some/silly/path/mpfr –with-mpc=/some/silly/path/mpc, luego ser forzado a establecer LD_LIBRARY_PATH=/some/silly/path/gmp:/alguna/ruta tonta/mpfr:/alguna/ruta tonta/mpc/lib en su entorno para siempre. Esto es una tontería y causa grandes problemas a cualquiera que no entienda cómo los enlazadores dinámicos encuentran las bibliotecas en tiempo de ejecución. No haga esto. Si la construcción de GCC falla cuando se utiliza cualquiera de las opciones –with-gmp o –with-mpfr o –with-mpc, entonces probablemente no debería utilizarlas.
Configuración
Vea Instalación de GCC: Configuración para la documentación completa. Una de las principales ventajas de ejecutar srcdir/configure desde fuera del directorio fuente (en lugar de ejecutar ./configure) es que el directorio fuente no se modificará de ninguna manera, por lo que si su construcción falla o quiere reconfigurar y construir de nuevo, simplemente borrará todo lo que haya en el objdir y comenzará de nuevo.
Por ejemplo, configurar y construir GCC 4.6.2 (con soporte para C, C++, Fortran y Go) debería ser tan sencillo como:
tar xzf gcc-4.6.2.tar.gzcd gcc-4.6.2./contrib/download_prerequisitescd ..mkdir objdircd objdir$PWD/../gcc-4.6.2/configure --prefix=$HOME/GCC-4.6.2 --enable-languages=c,c++,fortran,gomakemake install
El paso make lleva mucho tiempo. Si tu ordenador tiene varios procesadores o núcleos puedes acelerarlo construyendo en paralelo usando make -j 2 (o un número mayor para más paralelismo).
Si tu compilación falla y tu comando configure tiene muchas opciones complicadas deberías intentar eliminar opciones y mantenerlo simple. No añadas muchas opciones de configure que no entiendas, podrían ser la razón de que tu build falle.