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?

Le compilateur convertit le code écrit dans un langage de programmation lisible par l’homme en une représentation de code machine comprise par votre processeur. Cette étape crée des fichiers d’ object .

Une fois cette étape effectuée par le compilateur, une autre étape est nécessaire pour créer un exécutable fonctionnel pouvant être appelé et exécuté, c’est-à-dire associer les appels de fonction (par exemple) que votre code compilé doit appeler pour fonctionner. Par exemple, votre code peut appeler sprintf , qui est une routine de la bibliothèque standard C. Votre code n’a rien qui rend le service réel fourni par sprintf , il indique simplement qu’il doit être appelé, mais le code réel réside quelque part dans la bibliothèque C commune. Pour effectuer cette liaison (et bien d’autres), l’ éditeur de liens doit être appelé. Après la liaison, vous obtenez le fichier exécutable pouvant être exécuté.

Un compilateur génère des fichiers de code object (langage machine) à partir du code source.

Un éditeur de liens combine ces fichiers de code object dans un exécutable.

De nombreux IDE 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 les liens sont établis par le compilateur dans le cadre de ses travaux.