46 votes

Quelles sont les différences entre un compilateur et un éditeur de liens ?

Quelle est la différence entre un compilateur et un éditeur de liens en C ?

80voto

Stefano Borini Points 36904

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.

27voto

Oded Points 271275

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X