Ce guide détaillé explique comment compiler et installer le compilateur GCC (GNU Compiler Collection) version 9.5.0 à partir des sources sur un système Debian 10. Bien que les dépôts officiels de Debian proposent des versions stables de GCC, la compilation manuelle offre l'avantage d'accéder à des versions plus récentes ou de personnaliser les options de compilation selon des exigences spécifiques. Le processus couvre la gestion des dépendances, la configuration du compilateur, la compilation du code source et l'intégration de la nouvelle version de GCC au système.
1. Préparation de l'environnement et téléchargement des sources
Avant de commencer, assurez-vous de disposer des outils fondamentaux nécessaires à la compilation. Si les paquets ne sont pas déjà installés, utilisez la commande suivante pour installer build-essential (qui inclut make, g++, etc.) et d'autres utilitaires potentiellement requis par la configuration de GCC tels que m4, flex et bison.
sudo apt update
sudo apt install build-essential m4 flex bison
Téléchargez l'archive des sources de GCC 9.5.0 depuis un miroir officiel de GNU. Un exemple de lien de téléchargement est fourni ci-dessous :
wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.gz
Extrayez ensuite cette archive dans un répertoire de travail, par exemple /usr/local/src/. Ce répertoire sera désigné comme notre répertoire source pour GCC.
sudo tar -xzvf gcc-9.5.0.tar.gz -C /usr/local/src/
Naviguez vers le répertoire des sources de GCC :
cd /usr/local/src/gcc-9.5.0
2. Résolution des dépendances de compilation
GCC s'appuie sur plusieurs bibliothèques externes pour sa compilation, notamment GMP (GNU Multiple Precision Arithmetic Library), MPFR (Multiple-Precision Floating-Point Reliability) et MPC (Multiple Precision Complex Library), ainsi que ISL (Integer Set Library). Pour simplifier l'obtention et la configuration de ces dépendances, le projet GCC met à disposition un script d'automatisation.
Exécutez le script download_prerequisites depuis le répertoire source de GCC. Ce script téléchargera, décompressera et établira les liens symboliques nécessaires pour ces bibliothèques directement au sein du répertoire source, les rendant accessibles pour la phase de configuration.
./contrib/download_prerequisites
3. Configuration de la compilation de GCC
Il est préconisé de réaliser la compilation de GCC dans un répertoire distinct du répertoire source, garantissant ainsi une meilleure organisation et un nettoyage plus aisé. Nous allons créer un répertoire de compilation et définir un répertoire d'installation final.
Créez le répertoire dédié à la compilation (par exemple, un sous-répertoire dans /usr/local/src/) et le répertoire qui accueillera l'installation finale de GCC :
sudo mkdir /usr/local/src/gcc-build-9.5.0
sudo mkdir /usr/local/gcc-9.5.0-install # Répertoire d'installation cible
Accédez au répertoire de compilation que vous venez de créer :
cd /usr/local/src/gcc-build-9.5.0
Exécutez la commande configure pour préparer la compilation. Cette étape vérifie les dépendances système et génère les Makefiles. Les options suivantes sont recommandées :
--prefix=/usr/local/gcc-9.5.0-install: Spécifie le chemin d'accès au répertoire où GCC sera finalement installé.--disable-multilib: Sur les systèmes 64 bits, cette option est souvent utilisée pour éviter les complications liées à la compilation de bibliothèques 32 bits, simplifiant le processus si vous n'avez besoin que d'un compilateur 64 bits.--enable-checking=release: Configure le compilateur pour une version de production, optimisant les vérifications.--enable-languages=c,c++: Limite la compilation aux langages C et C++. Cela réduit le temps de compilation et la taille de l'installation si d'autres langages (comme Fortran ou Ada) ne sont pas nécessaires.
sudo ../gcc-9.5.0/configure --prefix=/usr/local/gcc-9.5.0-install --disable-multilib --enable-checking=release --enable-languages=c,c++
La réussite de cette commande indique que les fichiers Makefile nécessaires ont été générés.
4. Compilation du compilateur GCC
La phase de compilation peut s'avérer longue, sa durée dépend fortement des ressources matérielles de votre système (CPU, mémoire). Pour accélérer le processus, il est recommandé d'utiliser l'option -j avec make, qui permet une compilation parallèle en exploitant tous les cœurs de votre processeur. La variable $(nproc) retourne automatiquement le nombre de cœurs CPU disponibles.
sudo make -j$(nproc)
5. Installation de GCC
Une fois la compilation achevée sans erreurs, procédez à l'installation de GCC dans le répertoire spécifié par l'option --prefix, soit /usr/local/gcc-9.5.0-install.
sudo make install
Cette commande déploiera tous les fichiers du compilateur et les bibliothèques associées dans le répertoire d'installation cible.
6. Vérification de l'installation et configuration du système
Afin de confirmer que GCC a été installé correctement et de rendre cette nouvelle version accessible par défaut via la commande gcc, suivez les étapes ci-dessous :
6.1. Vérification de la version installée
Exécutez la commande gcc -v depuis le chemin d'installation pour confirmer que la version 9.5.0 est bien présente.
/usr/local/gcc-9.5.0-install/bin/gcc -v
Le résultat attendu devrait inclure gcc version 9.5.0 (GCC), attestant de la bonne installation.
6.2. Mise à jour des liens symboliques système
Par défaut, les commandes gcc et g++ sur votre système pointent probablement vers la version de GCC fournie par les dépôts Debian (par exemple, GCC 8 sur Debian 10). Pour utiliser la version 9.5.0 comme compilateur par défaut, vous devrez mettre à jour les liens symboliques /usr/bin/gcc et /usr/bin/g++.
Commencez par vérifier le lien actuel de /usr/bin/gcc :
ls -l /usr/bin/gcc
Ensuite, supprimez les liens existants et créez de nouveaux liens symboliques pointant vers votre installation personnalisée :
sudo rm /usr/bin/gcc
sudo ln -s /usr/local/gcc-9.5.0-install/bin/gcc /usr/bin/gcc
sudo rm /usr/bin/g++
sudo ln -s /usr/local/gcc-9.5.0-install/bin/g++ /usr/bin/g++
Vérifiez à nouveau la version de GCC, elle devrait maintenant correspondre à la version 9.5.0 :
gcc -v
6.3. Vérification de la taille de l'installation
Pour la gestion de l'espace disque, il peut être utile de connaître la taille totale occupée par le répertoire d'installation de GCC :
sudo du -sh /usr/local/gcc-9.5.0-install/
Cette commande affichera la taille du répertoire d'installation, généralement supérieure à 1 Go.