boostがライブラリを見つける方法

WindowsのVC2013で調べた場合。
boost\config\auto_link.hppが各種のマクロ定義から最終的に
#pragma comment(lib, “boost…lib”)を呼ぶ。

影響するマクロは_DLL, _MT, _DEBUG, __SGI_STL_PORTなど多数。
lib名の最後につくdgsとかのsは_DLLならsがつかない。そうでなければsがつく。
_DLLは/MDか/MDd (Multithreaded DLL)があればつく。/MDはランタイムをダイナミックリンクする。

boostのスタティックライブラリは標準ランタイムをstatic linkしたもの。
最近のビルドはほとんど/MDのはずなのでsはいらない。/MTの場合はランタイムをスタティックリンクする。

boostのビルドを何も考えずに行った場合staticバージョンはビルドされない。

BOOST_LIB_DIAGNOSTICを定義すればビルド時にlibのファイル名がわかる。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)