J'ai un projet de bibliothèque statique avec des options de construction de débogage/édition standard. J'ai été intrigué de constater que, tandis que le débogage .lib est un 22Mb assez volumineux, le lancement est un énorme 100Mb. Et ce n'est pas non plus une base de code massive, environ 75 classes et aucune d'entre elles très géante. Mes questions sont de savoir si c'est normal, et si je devrais m'en soucier?La version LIB est énorme par rapport au débogage
Répondre
Idéalement, la librairie de libération devrait être plus petite que celle de débogage.
Je suppose que vous pouvez liez statiquement autres libs tels que MFC, ATL etc ...
vérifier que vous relâchez et le réglage de version de débogage. Utilisez #pragma once
pour éviter l'inclusion de plusieurs fichiers de temps
Je généralement attendre l'inverse ...
Est-il possible qu'il y ait de grands andains de code à l'intérieur préprocesseur inclus blocs qui sont inclus uniquement dans la version construit?
Le code du modèle est particulièrement suspect dans ce cas.
Mise à jour
Je pense que la question est très probablement causé par un lien vers libs statiques en mode release, et partagé libs en mode débogage ...
+1 karoberts
Le code de modèle est soufflé en ligne dans les versions de débogage tout comme Release, ce qui ne risque pas d'être le problème ici. –
D'accord, à moins que ce soit dans un cas #if RELEASE ou similaire. –
Je ne pense pas; un compilateur/optimiseur de version peut regrouper le code du template pour presque rien. C'est une énorme différence de taille. –
Non , ce n'est pas normal. Il devrait être l'inverse. Oui, vous devriez vous en soucier. Je commencerais par regarder à nouveau les tailles, pour m'assurer que je n'ai pas transposé les tailles de libération et de débogage d'une manière ou d'une autre.
Ensuite, regardez les bibliothèques que vous liez pour la libération et le débogage. Avez-vous lié de manière accidentielle une bibliothèque de débogage à l'expédition et expédiez la bibliothèque pour déboguer? Observez de près vos paramètres de libération et de débogage. Quelque chose de très poisson se passe.
Est-il possible qu'une quantité massive de ce code soit en ligne et que la version de débogage ne soit pas "inline"?
Je vérifie pour voir si vous liez statiquement les bibliothèques en mode édition et les reliez dynamiquement en mode débogage. Vous pouvez être lié de manière statique au runtime C++ par exemple.
+1: Été là. – Dathan
En supposant qu'il pose des questions sur un projet de bibliothèque statique, la bibliothèque statique n'est jamais liée à quoi que ce soit dans le projet. La liaison des bibliothèques statiques ne se produit que lorsque la bibliothèque est utilisée. –
Corriger Neil. Aucun lien ici, seulement #includes externes –
Il y a une chose qui peut expliquer une telle taille: les symboles de débogage incorporés dans la version release (par opposition à construit en tant que pdb). Êtes-vous sûr de ne pas avoir généré de symboles de débogage pour votre build de version? (quel visuel C++ utilisez-vous?)
2008. PDB/informations de débogage est un domaine que je prévois de regarder de près ... Je génère généralement PDB pour la version et le débogage, mais cela devrait être un fichier distinct. –
ok. coupable peut être/Z7 et/ou/Yd si vous utilisez des fichiers pch. Vous pourriez vouloir fournir toutes les options que vous utilisez sur votre ligne de commande. – Bahbar
J'ai eu le même problème. La solution est très simple. Projet propriété/propriétés Configuration/General/Programme d'optimisation Toute utilisation Aucun programme entier d'optimisation au lieu de Utiliser Time Code lien Génération. La taille de ma bibliothèque statique est passée de 5 Mo à 1.3MB
Je ne sais pas pourquoi, mais c'était la raison pour moi. Il ne devrait pas vraiment être un problème à moins que vous déployiez les fichiers .lib quelque part. Si vous les maintenez juste locales à votre solution, vous devriez être bien parce que le fichier .exe ou .dll qui consomme le lib statique éliminera le matériel dont il n'a pas besoin. Ma question: http://stackoverflow.com/questions/2472568/visual-c-9-0-2008-static-lib-boost-library-large-lib-file – CuppM
- 1. Correctif et correctif par rapport à la version de maintenance par rapport au Service Pack par rapport à
- 2. Mesure du débogage par rapport à la version des applications ASP.NET
- 3. Tampon de page énorme par rapport à plusieurs processus simultanés
- 4. Mise au point par rapport à la performance de sortie
- 5. Valeurs Web.Config spécifiques à la version ou au débogage
- 6. Publier la version par rapport à l'assemblage (etc) Versions
- 7. Dépendance du projet Maven par rapport à la version JDK
- 8. Page par rapport à l'étendue par rapport au segment par rapport à l'espace table
- 9. DLL de site Web ASP.NET: version de débogage et version
- 10. PictureBox Dessin Coordonnées par rapport au formulaire
- 11. variable statique par rapport au membre
- 12. Making url CSS() Par rapport au document
- 13. Valider SOAP par rapport au schéma XSD?
- 14. $ _SERVER par rapport au paramètre environnement WSGI
- 15. jQuery div animation par rapport au conteneur
- 16. version rapport cristal
- 17. div largeur par rapport au contenu
- 18. Préprocesseur C par rapport au compilateur C
- 19. Vitesse de la peinture Java par rapport au modèle couleur
- 20. Centrage de la boîte de message par rapport au formulaire
- 21. Comment positionner la vue par rapport au parent?
- 22. Affichage de la source Chrome par rapport au POST
- 23. Contrôle de la source par rapport au contrôle de révision?
- 24. Utilisation de la méthode "clear" par rapport au nouvel objet
- 25. Insensible à la casse par rapport au groupe de chaînes
- 26. Entrée de la barre d'adresse par rapport au lien
- 27. Spécification d'emplacements par rapport au contexte XML au printemps
- 28. Vérifiez diff par rapport au fichier sur le serveur
- 29. Modifier le XCode par défaut par rapport au dossier XCode?
- 30. Lequel est le plus utilisable, produisant des dates par rapport à maintenant ou par rapport au moment de l'action principale?
Vous posez des questions sur un projet de bibliothèque statique, n'est-ce pas? –
oui, désolé. édité pour clarifier. –
J'ai ce problème maintenant. Avez-vous trouvé la raison? –