2010-12-09 14 views
0

Ich versuche, Boost und Mongodb zu kompilieren.Linking Probleme auf Windows (Boost)

Ich möchte 64-Bit-Versionen, gemeinsame libs und dynamische Verknüpfung mit der Laufzeit.

Boost wird mit link=shared, runtime-link=shared, threading=multi (und einigen anderen) kompiliert. Die lib- und dll-Dateien haben Namen wie: boost _ * - vc90-mt-1_41.dll

Jetzt mongodb hat standardmäßig gesetzt:/MT (Multithread-statisch). Der Linker benötigt Boost-Bibliotheken mit libboost_*-vc90-mt-s-1_41.dll (beachten Sie die zusätzlichen lib und -s). Also änderte ich die Option auf /MD (Multithread-DLL) und die -s verschwand, aber die lib blieb. Ich habe es mit /DBOOST_THREAD_USE_DLL /DBOOST_ALL_DYN_LINK versucht, aber es ändert sich nicht. Sucht der Linker immer noch nach den statischen Bibliotheken?

Bitte helfen :)

Antwort

1

BOOST_ALL_DYN_LINK sollte den Trick getan haben. Bitte stellen Sie sicher, dass Sie Ihr Projekt von Grund auf neu erstellen.

Wenn das Problem immer noch besteht, müssen Sie sagen, was sich hinter dem Stern versteckt - vielleicht gibt es einen Fehler mit einer bestimmten Bibliothek.

+0

Grundsätzlich hat dies den Trick gemacht. (Ich musste Boost-date_time auch manuell mit boost-thread verknüpfen. Und noch ein paar Verbesserungen in der mongodb-scons-Datei ...) – tauran