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
Peut-être que vous utilisez une construction qui provoque l'instanciation de nombreux modèles de boost? – Patrick
Etes-vous sûr que la version de débogage est liée à la bibliothèque statique et non à la DLL? –
@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