Boost statisch bauen



  • Abend,

    ich wuerde gerne boost::filesystem benutzen und diese lib statisch linken, sprich: Mein Code linkt einfach nur gegen boost filesystem .lib und braucht dann keine weitere .dll.
    Ich habe so eben boost gebaut (Win7) und in meinem boost/lib Ordner liegen folgende filesystem Dateien:

    boost_filesystem-vc100-mt-1_51.dll
    boost_filesystem-vc100-mt-1_51.lib (1)
    boost_filesystem-vc100-mt-gd-1_51.dll
    boost_filesystem-vc100-mt-gd-1_51.lib (2)
    libboost_filesystem-vc100-mt-s-1_51.lib (3)
    libboost_filesystem-vc100-mt-sgd-1_51.lib (4)
    

    So wie ich das sehe (korrigiert mich bitte, falls ich falsch liege!), sind 1 und 2 die import libs zu den dlls.
    3 und 4 sind statische Libs, so wie ich sie will (erkennbar am "s"). Das Problem ist nur: Offenbar kann ich 3 und 4 nur benutzen, wenn mein Programm gegen die STATISCHE C++ Runtime linkt, und das will ich NICHT! Ich will weiterhin gegen die DLL C++ Runtime linken, nur halt boost will ich als statische Lib reinlinken.
    Geht das ueberhaupt? Was muss ich dazu machen?

    Danke!



  • Eigentlich brauchst Du Dein Projekt nur nach wie vor normal dynamisch gegen die C++-RT linken und die Boost-Libs eben über die Linker-Includes Deines Compilers/Deiner IDE linken. Da es statische LIBs sind, wird auch automatisch verstanden, dass dort eben auch der Quellcode drin zu finden ist.

    Was genau erhältst Du denn für Fehlermeldungen? Achtest Du auch brav darauf die richtige Konfiguration (Debug/Release) zu nutzen? Findet ihr die Implementation nicht?


Anmelden zum Antworten