Quelles sont les différentes phases ou étapes impliquées dans la construction d'un exécutable (compilation, liaison ...)? est-il différent dans l'application .Net et l'application Windowsquelles sont les phases dans le processus de construction
Répondre
Pour C++, le préprocesseur effectue un passage, ensuite le compilateur, puis construit des ressources (si application windows), puis un lien.
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.
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.
- 1. Quelles mesures sont les plus utiles dans un serveur de construction ASP .Net?
- 2. Authentification Ajax 2 phases
- 3. Signature de code dans le cadre du processus de construction
- 4. Intégration de js dans le processus de construction
- 5. Quelles sont les meilleures pratiques pour le suivi des avertissements/erreurs dans les processus de longue durée?
- 6. Quelles sont les chaînes vraiment dans .NET?
- 7. Quelles sont les modifications empilables?
- 8. Quelles sont les dimensions de l'écran iPhones pour le codage?
- 9. Quelles sont les conventions de dénomination de bibliothèque appropriées?
- 10. Quelles sont les commandes importantes de Ruby?
- 11. Quelles sont les fonctionnalités cachées de Maven2?
- 12. Les processus engendrés sont abandonnés
- 13. Mise à jour automatique des phases de construction de Xcode pour une cible?
- 14. Quelles sont les spécifications HW recommandées pour les virtualisations?
- 15. Quelles sont les options pour faire une expérience de connexion en ligne en douceur?
- 16. Quelles sont les règles concernant les chemins httpHandler dans ASP.NET?
- 17. Gestion de version BizTalk automatique dans mon processus de construction
- 18. Apache Velocity: Quelles sont les variables disponibles dans les templates?
- 19. Quelles sont les fonctionnalités de sécurité disponibles dans Struts?
- 20. Quelles sont les principales modifications de syntaxe dans Ruby 1.9?
- 21. Quelles sont les caractéristiques de Lisp présentes dans Ruby?
- 22. Quelles sont les ressources à connaître sur le droit d'auteur?
- 23. Quelles sont les alternatives "Pastie"? (installable)
- 24. Quelles sont les limites internes à WCF?
- 25. Quelles sont les bonnes expressions régulières?
- 26. Quelles sont les meilleures façons d'utiliser le SQL Profiler
- 27. Compresseur YUI: Quelles sont les micro-optimisations?
- 28. Quelles sont les alternatives pour CSharpOptParse?
- 29. Quelles sont les alternatives à ClickOnce?
- 30. Quelles sont les bonnes ressources pour apprendre le SSIS avancé?