Compilation sous Linux : 3 étapes pour créer des binaires 🔥
Résumé clé
- La plupart des logiciels suivent un processus en 3 étapes pour compiler à partir du code source :
./configure && make && make install
. - Le scénario configurer vérifie les dépendances, faire génère l'exécutable et des outils tels que autoconf/automake automatiser ce processus.
- L'installation est généralement facultative, ce qui facilite l'exécution des commandes copiées dans les répertoires du
CHEMIN
du système.
La compilation à partir du code source peut sembler intimidante par rapport à l’utilisation de gestionnaires de paquets, mais avec trois commandes de base, le processus est simple et direct. 🚀
Qu'est-ce que la compilation à partir du code source ?
Les programmes que vous utilisez peuvent être interprétés ou compilés. Les programmes interprétés sont des fichiers texte contenant du code qu'un autre programme (l'interpréteur) exécute en temps réel. Les programmes compilés, quant à eux, sont des fichiers binaires contenant du code machine prêt à être exécuté.
Les exécutables compilés sont très courants, surtout dans les programmes volumineux. Lorsque vous compilez à partir du code source, voussas un compilateur comme gcc
pour convertir le code en un programme exécutable, souvent distribué sur plusieurs fichiers.

Le processus de compilation peut être long et complexe, c'est pourquoi il est généralement automatisé avec des programmes tels que faire
. Les fichiers fichiers makefiles contrôler la manière dont l'exécutable final est construit.
Dans les grands projets, ces fichiers makefiles Ils peuvent être si complexes qu’ils sont générés automatiquement avec des outils tels que autoconf et marque automobile pour assurer la compatibilité entre différentes architectures. 🛠️
Processus de construction en 3 étapes : configuration, création, installation
La plupart des logiciels utilisent ce modèle de base pour compiler à partir du code source :
./configure && make && make install
Les programmes populaires comme Apache utilisent cette séquence (ou une variante), comme explique son dossier INSTALLER:

Node.js suit également cette structure, comme indiqué dans son fichier BUILDING.md :

Chaque projet peut présenter de légères variations par rapport à cette chaîne de commande. Utilisez l'opérateur logique ET (&&
) arrête le processus si une étape échoue :
./configure && make && make install
Ou vous pouvez exécuter chaque commande séparément sur une seule ligne avec un point-virgule, bien que cela exécutera toutes les commandes sans s'arrêter si l'une d'elles échoue :
./configure; faire; faire installer
Vous pouvez également faire les trois lignes séparément :
./configurer faire faire installer
Si vous souhaitez simplement essayer le programme sans l'installer, vous pouvez ignorer faire installer
et exécutez-le depuis son dossier.
configurer
Prêt, tandis que d'autres (comme grep) nécessitent l'exécution préalable d'un autre script pour être générés. Consultez toujours les fichiers INSTALL, BUILD ou README pour suivre les recommandations du projet. 📋Comment ./configure démarre le processus
Le scénario configurer
C'est le point de départ du processus de compilation, adaptant le projet à votre environnement.
Ce script vérifie les dépendances nécessaires au projet, en vérifiant les versions et la disponibilité. Une fois terminé, il génère un fichier nommé Makefile
pour la phase suivante.
Le scénario configurer
offre de nombreuses options configurables avec ./configure --help
, vous permettant de personnaliser les détails de la construction.
configurer
comme faire
générer beaucoup de sortie à l'écran. Utilisez l'option --calme
si vous souhaitez exécuter ces commandes sans afficher autant de détails. 🤫Si le script est manquant configurer
, certains projets incluent un script comme autogen.sh
Pour le générer. Par exemple, htop l'utilise :

Les projets très simples ou les projets écrits dans d’autres langues peuvent ne pas avoir configurer
. Là, le processus se déroule en deux étapes : faire && faire installer
.
Le scénario configurer
Il contrôle également les détails de l'installation, tels que le paramètre --préfixe
, qui définit le répertoire racine d'installation. Par défaut, c'est /usr/local
, mais vous pouvez le modifier pour mieux organiser vos fichiers.
faire fait la plupart du travail
Après configurer
génère un Makefile
, la compilation proprement dite du logiciel commence par faire
.
Ce programme lit le Makefile
et suit des règles pour décider quels fichiers créer ou mettre à jour. Makefiles
Les manuscrits sont faciles à comprendre pour ceux qui connaissent la syntaxe.
Par exemple, celui-ci Makefile
compile simplement un programme qui dépend du fichier programme.c
:
programme : programme.c gcc -o programme programme.c
faire
vérifier si programme.c
modifié depuis la dernière compilation. Si cela n'a pas changé, ne rien faire ; sinon, compiler avec gcc
.

Le fichiers makefiles
générés automatiquement sont généralement beaucoup plus complexes. Par exemple, fichier makefile
htop comporte 2 440 lignes :

Mais vous n'avez pas besoin de comprendre tous les détails. À moins de modifier le code source, exécutez-le simplement. faire
et laissez le système s'en occuper.
L'étape faire
Cela peut prendre quelques minutes, voire plus, pour les projets volumineux. En cas d'échec, c'est généralement dû à des dépendances manquantes. L'avantage est que faire
enregistre la progression et reprend là où elle s'est arrêtée lorsque vous exécutez à nouveau.
Terminer avec make install
Après la compilation, l'exécutable créé est généralement situé à la racine du projet ou dans un sous-répertoire appelé poubelle
. Vous pouvez l'exécuter en utilisant le chemin complet :

Ceci est utile pour les tests, mais à long terme, vous souhaiterez l'installer dans un endroit accessible.
L'objectif installer
qui définit le fichier makefile
Copiez les fichiers nécessaires et définissez les autorisations. L'emplacement par défaut est /usr/local/bin
, bien que vous puissiez le changer avec --préfixe
.
Si vous n'avez pas les autorisations pour ce dossier, exécutez sudo make install
et fournit le mot de passe administrateur.
Le répertoire d'installation doit être inclus dans votre variable CHEMIN
pour pouvoir exécuter le programme avec juste son nom, sans spécifier le chemin complet.