Linux From Scratch: Versión 4.0 | ||
---|---|---|
Anterior | Capítulo 6. Instalando los programas del sistema base | Siguiente |
Estimación del tiempo de construcción: 13.26 SBU Estimación del espacio de disco requerido: 221 MB |
Este paquete necesita que le apliques un parche antes de poder instalarlo. Asegúrate de desempaquetarlo antes de ejecutar los comandos de instalación.
Se sabe que este programa se comporta mal si cambias sus parámetros de optimización (incluyendo las opciones -march y -mcpu). Es mejor dejar a GCC tal como está. Por esta razón, si tienes definida cualquier variable de entorno que pueda sobreescribir las optimizaciones por defecto, como CFLAGS o CXXFLAGS, recomendamos quitarlas o modificarlas cuando construyas GCC. Estás avisado.
Instala GCC ejecutando los siguientes comandos, que construirán los compiladores C y C++. Otros compiladores están disponibles dentro del paquete gcc. Si quieres compilar también todos los demás compiladores disponibles, elimina la opción --enable-languages=c,c++ del comando configure. Mira la documentación de GCC para más detalles sobre qué compiladores adicionales están disponibles.
Advertencia: la construcción de otros compiladores no ha sido comprobada por la gente que trabaja activamente en LFS.
patch -Np1 -i ../gcc-3.2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-3.2/configure --prefix=/usr --enable-shared \ --enable-languages=c,c++ --enable-threads=posix \ --with-slibdir=/lib --enable-__cxa_atexit \ --enable-clocale=gnu && make bootstrap && make install && ln -s ../usr/bin/cpp /lib && ln -s ../bin/cpp /usr/lib && ln -s gcc /usr/bin/cc |
--enable-threads=posix: Esto activa las excepciones C++ para el manejo de código multihilo.
--enable-__cxa_atexit: Esta opción dará como resultado librerías compartidas C++ y programas C++ interoperables con otras distribuciones linux.
--enable-clocale=gnu: Hay un riesgo de que ciertas personas construyan librerías C++ incompatibles con ABI si no instalan todas las localedata de glibc. Utilizando --enable-clocale=gnu nos aseguramos de que se hace "lo correcto" en todos los casos. Si no deseas usar esta opción, entonces al menos contruye la locale de_DE. Cuando GCC encuentra esta locale específica, entonces se implementa el modo locale correcto (gnu).
Última versión comprobada: 3.1.
c++, c++filt, cc (enlace a gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gccbug, gcov y tradcpp0
Estos programas forman el compilador de C. Un compilador convierte el código fuente en formato de texto a un formato que un ordenador pueda entender. Después de que un fichero de código fuente es compilado en un fichero objeto, un enlazador creará un fichero ejecutable a partir de uno o más de estos ficheros objeto generados por el compilador.
El lenguaje C++ proporciona sobrecarga de funciones, lo que significa que es posible escribir varias funciones con el mismo nombre (suponiendo que cada una tome parámetros de diferente tipo). Todos los nombres de funciones C++ son codificadas dentro de una etiqueta de bajo nivel del ensamblador (este proceso es conocido como "mangling"). El programa c++flit hace lo contrario: decodifica (demangling) nombres de bajo nivel en nombres de nivel de usuario para que el enlazador pueda evitar conflictos en estas funciones sobrecargadas.
cpp preprocesa un fichero fuente, por ejemplo la inclusión del contenido de los ficheros de cabecera en el fichero fuente. Simplemente, añade una línea del tipo #include <fichero> a tu fichero fuente y el preprocesador insertará el contenido del fichero incluido dentro del fichero fuente.
gccbug es un guión del interprete de comandos que se usa para simplificar la creación de notificaciones de errores.
libiberty es una colección de subrutinas usadas por muchos programas GNU, incluidos getopt, obstack, strerror, strtol y strtoul.
libstdc++ es la librería C++. Es utilizada por programas escritos en C++ y contiene funciones que son usadas frecuentemente por esos programas. De esta forma el programador no necesita escribir ciertas funciones (como la escritura de una cadena de texto en pantalla) desde el principio cada vez que crea un programa.
Última versión comprobada: 2.95.3.
Bash: sh
Binutils: ar, as, ld, nm, ranlib
Diffutils: cmp
Fileutils: chmod, cp, ln, ls, mkdir, mv, rm, touch
Find: find
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Patch: patch
Sed: sed
Sh-utils: basename, dirname, echo, expr, hostname, sleep, true, uname
Tar: tar
Texinfo: install-info, makeinfo
Textutils: cat, tail, tr