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 :)
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