2009-06-04 10 views

Répondre

0

Pour C++, le préprocesseur effectue un passage, ensuite le compilateur, puis construit des ressources (si application windows), puis un lien.

1

Voici le tout, jusqu'à une application en cours d'exécution, en ne tenant compte que du compilateur.

  • programme de code
  • compiler des fichiers individuels à l'objet (ou .o obj) fichiers
  • fichiers lien dans un fichier exécutable (a.out fichier ou .exe)

Lancez le fichier exécutable , qui a ensuite

  • replace et charge l'image dans un espace d'adressage
  • Résout des liens vers les bibliothèques liées dynamiquement (DLL ou pour .so)
  • régler le compteur de programme au point d'entrée dans le code d'installation, qui fait quelques initialisations puis
  • appel de la routine main().

Les fichiers de ressources Windows sont vraiment simplement compilés sous une forme binaire afin qu'ils puissent être inclus dans l'exécutable en tant que données. Il y avait des raisons à cela à l'époque de Windows 3.0, mais je pense que maintenant c'est juste un hold-up historique.

1

Le code Dotnet est compilé en IL (Langage intermédiaire). Mais contrairement à d'autres langages, ce code intermédiaire n'est pas interprété, il est à nouveau compilé pour obtenir du code natif. Cette couche supplémentaire est nécessaire pour assurer la portabilité du code. Ce processus est effectué une seule fois et seul le bloc de code requis est compilé en cas de besoin. Par conséquent, la première exécution est toujours plus lente car le code est également traduit en code natif.

Questions connexes