Linux From Scratch: Version 20020515 | ||
---|---|---|
Prev | Chapter 6. Installation des logiciels de base du système | Next |
Estimation du temps de construction: 22 minutes Estimation de l'espace disque requis: 148 MB |
Avant que GCC ne soit installé, il faut que le fichier patch de GCC soit déballé. Assurez-vous qu'il soit déballé avant de lancer les commandes d'installation.
Ce package est connu pour avoir un mauvais fonctionnement si vous avez changé ses paramètres d'optimisation par défaut (incluant les options -march et -mcpu). GCC se comporte mieux sans. Donc, si vous avez défini des variables d'environnement qui écrasent les optimisations par défaut, comme CFLAGS et CXXFLAGS, nous vous recommendons de les annuler ou de les modifier lors de la construction de GCC. Vous avez été prévenu.
Installer GCC en exécutant les commandes suivantes. Ces commandes construiront les compilateurs C et C++. D'autres compilateurs sont accessibles avec le package gcc. Si vous voulez également construire tous les autres compilateurs n'entrez pas l'option --enable-languages=c,c++ dans la commande de configuration. Voyez la documentation de GCC pour plus de détail sur les compilateurs disponibles.
Note: la construction des autres compilateurs n'est pas testé par les personnes qui travaillent sur LFS.
patch -Np1 -i ../gcc-2.95.3-2.patch && mkdir ../gcc-build && cd ../gcc-build && ../gcc-2.95.3/configure --prefix=/usr --enable-shared \ --enable-languages=c,c++ --enable-threads=posix && make bootstrap && make install && ln -sf ../usr/bin/cpp /lib && ln -sf ../bin/cpp /usr/lib && ln -sf gcc /usr/bin/cc && rmdir /usr/*-gnu/include && rmdir /usr/*-gnu |
c++, c++filt, cc (lien vers gcc), cc1, cc1plus, collect2, cpp, cpp0, g++, gcc, gcov, protoize et unprotoize
Ce sont les compilateurs C. Un compilateur transforme le code source au format texte dans un format que l'ordinateur comprends. Après qu'un code source ait été compilé en un fichier objet, un éditeur de lien va créer un fichier exécutable à partir d'un ou plusieurs de ces fichiers généré par le compilateur.
Ce sont les compilateurs C++; l'équivalent de cc et gcc, etc...
c++filt est utilisé pour filtrer les symboles C++.
collect2 assiste à la compilation de constructeurs.
cpp réalise un travail préliminaire sur un fichier source, comme inclure le contenu des fichiers d'entêtes dans ce code source. C'est une bonne idée de ne pas faire ceci manuellement pour gagner beaucoup de temps. Il suffit d'insérer une ligne comme #include <filename>. Ce préprocesseur insère le contenu de ce fichier dans le fichier source. C'est une des choses que réalise le préprocesseur.
gcov analyse les programmes pour aider à créer des codes plus efficaces, plus rapides avec une optimisation.
Programme optionnel qui transforme des fonctions ou des définitions pre-ANSI dans le nouveau style des prototypes C ANSI (fichier par défaut à rechercher est /usr/lib/gcc-lib/<arch>/<version>/SYSCALLS.c.X)
Programme optionnel qui transforme des prototypes réalisés avec protoize vers l'ancien style pre-ANSI (job correct seulement quand conversion avant protoize)
libgcc.a, libiberty.a, libstdc++.[a,so]
libgcc.a est une bibliothèque utilisé par gcc lors de son exécution. La plupart du temps, sur la pluport des machines, libgcc.a n'est pas réellement nécessaire.
libiberty est une collection de sous-routines utilisées par différents programmmes GNU, comme getopt, obstack, strerror, strtol et strtoul.
libstdc++ est la bibliothèque C++. Elle est utilisée par les programmes C++ et contient des fonctions couramment utilisé par eux. De cette façon, le développeur n'a pas besoin d'écrire certaines fonctions (comme écrire une ligne de texte à l'écran) à partir de rien, à chaque fois qu'il crée un programme.
GCC-2.95.3 nécessite que les programmes suivants soient installés:
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