Diferencias entre las revisiones 4 y 5
Versión 4 con fecha 2017-07-21 15:17:49
Tamaño: 4408
Editor: FabioDuran
Comentario:
Versión 5 con fecha 2017-07-21 15:23:02
Tamaño: 5465
Editor: FabioDuran
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 86: Línea 86:
== GCC ==
===
6.4.0 ===
== GCC 6.4.0 ==
Línea 91: Línea 90:
Línea 95: Línea 93:
Línea 97: Línea 94:
Línea 101: Línea 97:
mkdir build-gcc
Línea 105: Línea 101:
}}}
'''Explicación de los comandos''''''
'''
Línea 106: Línea 105:
}}}  * ''' mkdir build-gcc:''' Creamos un directorio de compilación, ya que GCC no permite que se compile directamente en el directorio de las fuentes.
 * '''--enable-shared:''' Compila las librerías compartidas.
 * '''--enable-threads=posix:''' Selecciona la librería genérica POSIX/Unix98 para el soporte de hilos.
 * '''--enable-__cxa_atexit:''' Opción necesaria para una correcta compilación de c++.
 * ''' --enable-clocale=gnu: '''Evita un error en la generación de las locales, en el caso de que estén incompletas.
 * ''' --enable-languages=fortran,objc:''' Compila los lenguajes de programación Fortran, Java, y Objetive C, además de los predefinidos, C y C++. También está la opción de agregar el lenguaje Java, para para el caso no es necesario.
 * '''--enable-java-awt=gtk:''' Añade el soporte de AWT con GTK+ como librería de interfaz gráfica a Libgcj. (opcional caso de implementar gcc-java)
 * ''' --prefix=/path/to/install:''' Instala el compilador en la ruta que hemos definido

Instalar GCC

Introducción:

"Con la publicación de este manual se oficializa dentro de la web el apartado dedicado a este indispensable compilador, y se incluye la versión más reciente del mismo, además de las otras versiones más recientes de otras series del compilador predefinido del mundo 'GNU/Linux.

De lo que se trata es de que podamos siempre compilar un programa, y para eso tendremos que tener dos o tres versiones diferentes de GCC, aunque el número de versiones que podamos llegar a tener es ilimitado. La configuración del sistema para que puedan convivir las diferentes versiones de GCC es otro de los aspectos (incluso yo diría el más importante) más destacable de este documento.

Los lenguajes soportados en la compilación de GCC son los que habitualmente uso: C, C++ y Objetive C. Para terminar, y al igual que expliqué en la introducción del manual del Kernel, esto no es un manual genérico de instalación de GCC, sino la radiografía de las instalaciones que un usuario de GNU/Linux viene haciendo hace ya unos cuantos años, sin haber tenido casi nunca, ningún tipo de problema en la convivencia de las diferentes versiones de GCC que tiene en su sistema GNU/Linux. Desde el 8 de mayo de 2012 se incluye también la instalación del lenguaje Fortran. Y desde el 13 de marzo de 2015, la instalación del lenguaje Java, que ha sido retirado a partir de GCC 7."

Librarias requeridas:

Una sería de librerías requeridas para poder lograr la implementación de GCC son necesarias, entre las que encontramos:

  • GMP - the GNU Multiple Precision Arithmetic Library.
  • MPFR - the GNU Multiple-precision floating-point rounding library, que depende de GMP.
  • MPC - the GNU Multiple-precision C library. con dependencia en GMP and MPFR.
  • ISL - Integer Set Library

Todas estás librerías serán instaladas en el directorio /opt/util_compiler, por lo que los prefix requeridos deben apuntar a esa ruta.

GMP

Descargar el paquete de gmp. Actualmente se está utilizando la versión 6.1.0

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2

Una vez descargado ejecutamos los siguientes pasos:

bunzip2 gmp-6.1.0.tar.bz2
tar xvf gmp-6.1.0.tar
cd gmp-6.1.0
./configure --disable-shared --enable-static --prefix=/opt/util_compiler/
make
make check

Luego instalar como súper usuario (root)

make install

MPFR

Descargar la versión actual (3.1.4) de MPFR desde la siguiente urlftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 usando wget,

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2

Ejecutar los siguientes pasos:

bunzip2 mpfr-3.1.4.tar.bz2
tar xvf mpfr-3.1.4.tar
cd mpfr-3.1.4
./configure --disable-shared --enable-static --prefix=/opt/util_compiler --with-gmp=/opt/util_compiler
make && make check

Y como super usuario

make install

MPC

Descargar e instalar la versión 1.0.3 siguiendo los siguientes pasos:

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
tar zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --disable-shared --enable-static --prefix=/opt/util_compiler --with-gmp=/opt/util_compiler --with-mpfr=/opt/util_compiler
make && make check

Como usuario root:

make install

ISL

La versión a utilizar será 0.16.1

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.16.1.tar.bz2
./configure --with-gmp-prefix=/opt/util_compiler --disable-shared --enable-static --prefix=/opt/util_compiler
make

Como usuario root:

make install

GCC 6.4.0

Descargamos desde la url https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz utilizando wget y descomprimimos

https://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.xz

tar xvf gcc-6.4.0.tar.xz

Procedemos a compilar:

mkdir build-gcc
./gcc-6.4.0/configure --enable-shared --enable-threads=posix --enable-__cxa_atexit \<<BR>> --enable-clocale=gnu --enable-languages=fortran,objc \<<BR>> --prefix=/path/to/install<<BR>>

make

Explicación de los comandos

  • mkdir build-gcc: Creamos un directorio de compilación, ya que GCC no permite que se compile directamente en el directorio de las fuentes.

  • --enable-shared: Compila las librerías compartidas.

  • --enable-threads=posix: Selecciona la librería genérica POSIX/Unix98 para el soporte de hilos.

  • --enable-cxa_atexit: Opción necesaria para una correcta compilación de c++.

  • --enable-clocale=gnu: Evita un error en la generación de las locales, en el caso de que estén incompletas.

  • --enable-languages=fortran,objc: Compila los lenguajes de programación Fortran, Java, y Objetive C, además de los predefinidos, C y C++. También está la opción de agregar el lenguaje Java, para para el caso no es necesario.

  • --enable-java-awt=gtk: Añade el soporte de AWT con GTK+ como librería de interfaz gráfica a Libgcj. (opcional caso de implementar gcc-java)

  • --prefix=/path/to/install: Instala el compilador en la ruta que hemos definido

Referencia:

http://manualinux.eu/gcc.html

cluster/gcc (última edición 2021-04-21 20:07:05 efectuada por AlejandroValdes)