2010-12-09 49 views
0

J'essaye de compiler boost et mongodb.Problèmes de liaison sous Windows (boost)

Je veux des versions 64 bits, des bibliothèques partagées et une liaison dynamique à l'exécution. Boost est compilé avec link=shared, runtime-link=shared, threading=multi (et quelques autres). Les fichiers lib et dll ont des noms comme: boost _ * - vc90-mt-1_41.dll

Maintenant, mongodb a par défaut:/MT (multithread static). L'éditeur de liens a requis des bibliothèques de renforcement avec libboost_*-vc90-mt-s-1_41.dll (notez les lib supplémentaires et -s). J'ai donc changé l'option à /MD (DLL multithread) et le -s a disparu mais le lib est resté. Je l'ai essayé avec /DBOOST_THREAD_USE_DLL /DBOOST_ALL_DYN_LINK mais ça ne change pas. L'éditeur de liens recherche-t-il toujours les bibliothèques statiques?

S'il vous plaît aider :)

Répondre

1

BOOST_ALL_DYN_LINK aurait dû faire l'affaire. S'il vous plaît assurez-vous de reconstruire votre projet à partir de zéro, cependant.

Si le problème persiste, je suppose que vous devez dire ce qui se cache derrière l'astérisque - peut-être qu'il y a un bug avec une bibliothèque spécifique.

+0

Fondamentalement, cela a fait l'affaire. (J'ai aussi dû relier boost-date_time manuellement à boost-thread et quelques autres réglages dans le fichier mongodb scons ...) – tauran