Quelle est la différence entre un compilateur et un éditeur de liens en C ?
Réponses
Trop de publicités?Le compilateur convertit le code écrit dans un langage de programmation lisible par l'homme en une représentation en code machine qui est comprise par votre processeur. Cette étape crée objet des fichiers.
Une fois cette étape effectuée par le compilateur, une autre étape est nécessaire pour créer un exécutable fonctionnel qui peut être invoqué et exécuté, c'est-à-dire associer les appels de fonction (par exemple) que votre code compilé doit invoquer pour fonctionner. Par exemple, votre code pourrait appeler sprintf
qui est une routine de la bibliothèque standard C. Votre code n'a rien qui fasse le service réel fourni par sprintf
Il signale simplement qu'il doit être appelé, mais le code réel se trouve quelque part dans la bibliothèque C commune. Pour effectuer cette liaison (et bien d'autres), la commande linker doit être invoqué. Après la liaison, vous obtenez l'exécutable réel qui peut s'exécuter.
Un compilateur génère des fichiers de code objet (langage machine) à partir du code source.
A linker combine ces fichiers de code objet en un exécutable.
De nombreux IDEs les invoquent successivement, de sorte que vous ne voyez jamais réellement l'éditeur de liens au travail. Certains langages/compilateurs n'ont pas d'éditeur de liens distinct et l'édition de liens est effectuée par le compilateur dans le cadre de son travail.