Boost-Libs im VS, warum so viele Konfigurationen?
-
Ich hab mir grade die neueeste Boost-Lib erstellt und zwar mit folgendem Kommando:
bjam --build-dir="d:\boost" --build-type=complete --toolset=msvc stage
Wenn ich das "complete" weglasse, macht er ja nur die release-Version und dann kann ich nicht im debug-Mode erstellen, weil der Linker die Lib nicht findet. Soweit so normal.
Nun habe ich mal geschaut, was der alles erstellt und frage mich: warum sind das so viele Libs pro Teilbibliothek??? Ich meine normal wäre doch 4: MT, MT-debug , MD, MD-Debug.
Ich hab mal die Dateien zu Filesystem hier reinkopiert:
boost_filesystem-vc80-mt-1_35.lib
boost_filesystem-vc80-mt.lib
boost_filesystem-vc80-mt-gd-1_35.lib
boost_filesystem-vc80-mt-gd.liblibboost_filesystem-vc80-mt-1_35.lib
libboost_filesystem-vc80-mt.lib
libboost_filesystem-vc80-mt-gd-1_35.lib
libboost_filesystem-vc80-mt-gd.lib
libboost_filesystem-vc80-mt-s-1_35.lib
libboost_filesystem-vc80-mt-s.lib
libboost_filesystem-vc80-mt-sgd-1_35.lib
libboost_filesystem-vc80-mt-sgd.lib
libboost_filesystem-vc80-s-1_35.lib
libboost_filesystem-vc80-s.lib
libboost_filesystem-vc80-sgd-1_35.lib
libboost_filesystem-vc80-sgd.libboost_filesystem-vc80-mt-1_35.dll
boost_filesystem-vc80-mt-gd-1_35.dllSind denn da wirklich so viele nötig? Oder sollte man beim Erstellen doch nicht das "complete" sondern was anderes nehmen?
-
Ich hab auch schon vergessen für was die einzelnen Buchstaben stehen. Guck doch einfach nach, steht IMO auf der Homepage, und im auto_link.hpp File kann man's auch relativ leicht rausfinden.
Die "*-1_35.lib" dürften einfach nur Kopien sein, weil manche einfach nur gegen Boost linken wollen (egal welche Version, die "aktuelle" halt), und andere wieder explizit gegen die 1.35 linken wollen.
Schätzung:
boost_filesystem-vc80-mt-1_35.lib
boost_filesystem-vc80-mt.libboost als DLL, multithreaded DLL runtime
boost_filesystem-vc80-mt-gd-1_35.lib
boost_filesystem-vc80-mt-gd.libboost als DLL, multithreaded DLL runtime debug
libboost_filesystem-vc80-mt-1_35.lib
libboost_filesystem-vc80-mt.libboost als LIB, multithreaded DLL runtime
libboost_filesystem-vc80-mt-gd-1_35.lib
libboost_filesystem-vc80-mt-gd.libboost als LIB, multithreaded DLL runtime debug
libboost_filesystem-vc80-mt-s-1_35.lib
libboost_filesystem-vc80-mt-s.libboost als LIB, multithreaded LIB runtime
libboost_filesystem-vc80-mt-sgd-1_35.lib
libboost_filesystem-vc80-mt-sgd.libboost als LIB, multithreaded LIB runtime debug
libboost_filesystem-vc80-s-1_35.lib
libboost_filesystem-vc80-s.libboost als LIB, multithreaded LIB runtime - kopie unter anderem namen, weils mal eine singlethreaded LIB runtime gab (bis VC 7.1), also um zu bestehenden build-scripts kompatibel zu bleiben
libboost_filesystem-vc80-sgd-1_35.lib
libboost_filesystem-vc80-sgd.libboost als LIB, multithreaded LIB runtime debug - kopie weil ... siehe oben