2010-03-18 8 views
1

J'ai un projet Visual Studio 2008 C++ qui génère une bibliothèque statique et utilise certaines fonctionnalités de la bibliothèque Boost. Lorsque je compile le projet dans la configuration de débogage, le fichier .lib est de 7,84 Mo. Lorsque je compile le projet dans la configuration Release, le fichier .lib est de 23,5 Mo. !!!!Visual C++ 9.0 (2008) Bibliothèque statique Lib + Boost = grand fichier .lib

Les seuls les en-têtes Boost j'inclure sont:

  • boost/function.hpp
  • boost/exception/all.hpp

Comme il est une bibliothèque statique, je n'ai pas de fichiers de bibliothèque Boost spécifié pour inclure, mais en quelque sorte c'est une sortie ginormous. Lorsque j'utilise cette bibliothèque statique dans un exécutable de test, le fichier .exe résultant est seulement 746 Ko dans Debug et 231 Ko dans Release.

Le problème est que je dois créer une "version" de la bibliothèque pour vérifier dans un autre référentiel à utiliser par d'autres projets. Et je préférerais ne pas avoir à ajouter 30 Mo de fichiers chaque fois que je le mettrais à jour. Et si rien d'autre ne m'embarrasse vraiment, c'est pourquoi la version de Release est 3 fois plus grande que le Debug.

Quelqu'un at-il des suggestions sur ce que je fais de mal?

Merci, Matt

+0

Peut-être que vous utilisez une construction qui provoque l'instanciation de nombreux modèles de boost? – Patrick

+0

Etes-vous sûr que la version de débogage est liée à la bibliothèque statique et non à la DLL? –

+0

@Patrick: J'ai un fichier/classe d'exception que je dérive de 'boost :: exception' en utilisant leur méthode recommandée (et je l'utilise dans tout le projet). J'ai aussi une classe qui prend un argument 'boost :: function '. – CuppM

Répondre

3

projet + Propriétés, C/C++, optimisation, optimisation du programme entier = Non, ce au moins devrait garder la taille de votre version Release de faire sauter. Je ne peux pas reprographier la taille de la bibliothèque de débogage, juste les en-têtes me donne un .lib de 111KB.

+0

Cela a pris la version Release à 5,41 Mo. Beaucoup mieux. Est-ce que changer la valeur de Whole Optimization Program à No affecte beaucoup la vitesse et la performance dans ce cas? – CuppM

+0

Cela n'a aucun effet tant que vous n'essayez pas d'optimiser le programme avec la fonction d'optimisation complète du programme. Si vous n'en avez jamais entendu parler, vous ne le manquerez pas. Si vous le faites, vous pouvez simplement créer une configuration de construction différente. –