Cette page est destinée à offrir des conseils pour éviter certains problèmes courants lors de l’installation de GCC, les docs d’installation officiels sont dans la section Installer GCC de la documentation principale de GCC. N.B. ces docs d’installation font référence au tronc de développement, les instructions d’installation pour les versions publiées sont incluses dans les sources des versions.
Pour la plupart des gens, la façon la plus simple d’installer GCC est d’installer un paquetage fait pour votre système d’exploitation. Le projet GCC ne fournit pas de binaires préconstruits de GCC, seulement le code source, mais toutes les distributions GNU/Linux incluent des paquets pour GCC. Les systèmes basés sur BSD incluent GCC dans leurs collections de ports. Pour les autres systèmes d’exploitation, la page Installer GCC : binaires liste quelques sources tierces de binaires GCC.
Si vous ne trouvez pas de binaires adaptés à votre système, ou si vous avez besoin d’une version plus récente que celle qui est disponible, vous devrez construire GCC à partir des sources afin de l’installer.
Construire GCC
Beaucoup de gens se précipitent pour essayer de construire GCC sans lire correctement les docs d’installation et font une ou plusieurs de ces erreurs courantes :
-
ne pas exécuter ./configure depuis le répertoire source, ce n’est pas supporté. Vous devez exécuter configure depuis l’extérieur du répertoire source, dans un répertoire séparé créé pour la construction (c’est une FAQ)
-
si GCC établit des liens dynamiques vers les bibliothèques de support GMP, MPFR ou MPC, alors les bibliothèques partagées pertinentes doivent être dans le chemin de l’éditeur de liens dynamiques, à la fois lors de la construction de gcc et lors de l’utilisation du compilateur installé (ceci est également une FAQ)
Bibliothèques de support
Voir Installation de GCC : Prérequis pour connaître les logiciels nécessaires à la construction de GCC. Si vous n’avez pas les bibliothèques de support GMP, MPFR et MPC déjà installées dans le cadre de votre système d’exploitation, alors il y a deux façons simples de procéder, et une façon difficile et sujette aux erreurs. Pour une raison quelconque, la plupart des gens choisissent la méthode difficile. Les façons simples sont :
-
S’il fournit des versions suffisamment récentes, utilisez le système de gestion des paquets de votre système d’exploitation pour installer les bibliothèques de support dans les emplacements standard du système. Pour les systèmes basés sur Debian, y compris Ubuntu, vous devez installer les paquets libgmp-dev, libmpfr-dev et libmpc-dev. Pour les systèmes basés sur RPM, y compris Fedora et SUSE, vous devez installer les paquets gmp-devel, mpfr-devel et libmpc-devel (ou mpc-devel sur SUSE). Ces paquets installeront les bibliothèques et les en-têtes dans les répertoires standard du système afin qu’ils puissent être trouvés automatiquement lors de la construction de GCC.
-
Alternativement, après avoir extrait l’archive source de GCC, exécutez simplement le script ./contrib/download_prerequisites dans le répertoire source de GCC. Cela téléchargera les bibliothèques de support et créera des liens symboliques, ce qui les fera construire automatiquement dans le cadre du processus de construction de GCC. Définissez GRAPHITE_LOOP_OPT=no dans le script si vous voulez construire GCC sans ISL, qui n’est nécessaire que pour les optimisations de boucle optionnelles de Graphite.
La manière difficile, qui n’est pas recommandée, est de télécharger les sources de GMP, MPFR et MPC, puis de configurer et d’installer chacun d’eux dans des emplacements non standard, puis configurer GCC avec –with-gmp=/some/silly/path/gmp –with-mpfr=/some/silly/path/mpfr –with-mpc=/some/silly/path/mpc, puis être obligé de définir LD_LIBRARY_PATH=/some/silly/path/gmp :/some/silly/path/mpfr:/some/silly/path/mpc/lib dans votre environnement pour toujours. C’est stupide et cela cause des problèmes majeurs à tous ceux qui ne comprennent pas comment les linkers dynamiques trouvent les bibliothèques au moment de l’exécution. Ne faites pas cela. Si la construction de GCC échoue lors de l’utilisation de l’une des options –with-gmp ou –with-mpfr ou –with-mpc, alors vous ne devriez probablement pas les utiliser.
Configuration
Voir Installation de GCC : Configuration pour la documentation complète. Un avantage majeur de l’exécution de srcdir/configure à partir de l’extérieur du répertoire source (au lieu de l’exécution de ./configure) est que le répertoire source ne sera modifié en aucune façon, donc si votre construction échoue ou si vous voulez re-configurer et construire à nouveau, vous supprimez simplement tout ce qui se trouve dans l’objdir et recommencez.
Par exemple, la configuration et la construction de GCC 4.6.2 (avec support pour C, C++, Fortran et Go) devraient être aussi simples que :
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
L’étape make prend beaucoup de temps. Si votre ordinateur possède plusieurs processeurs ou cœurs, vous pouvez l’accélérer en construisant en parallèle en utilisant make -j 2 (ou un nombre plus élevé pour plus de parallélisme).
Si votre construction échoue et que votre commande configure a beaucoup d’options compliquées, vous devriez essayer de supprimer des options et de rester simple. N’ajoutez pas beaucoup d’options configure que vous ne comprenez pas, elles pourraient être la raison pour laquelle votre build échoue.