Boost是一個強大的C++第三方庫,可是Boost的各類問題實在是很讓人蛋疼。我搜到過一篇文章關於LuaBind使用Boost Build管理工具來管理源代碼以及編譯的博文,其第一句話就是Fuck The Boost!it is the pain of ass!工具
那個採用Boost Build來編譯LuaBind我最後完成了,可是非常蛋疼。ui
如今又出現了Boost連接的問題,通過多方搜索,以及嘗試。我的對Boost 的自動連接機制以下:
Boost默認啓用自動連接功能,並且是靜態連接。它會根據當前的編譯器預約義宏判斷是不是DEBUG,什麼版本的編譯器,而後自動連接libXXX-vc100-mt-gd-1_52.lib這樣的文件。其中lib的表明着是靜態LIB庫文件,vc100指編譯器版本(在VS2008中它會自動連接vc90這樣的文件),gd表明debug,release,沒有gd選項。這樣的自動連接功能很是煩惱,當升級了VS時,要從新用新編譯器編譯Boost庫。
若是要開啓自動連接功能,並且是動態連接的話,定義 BOOST_ALL_DYN_LINK。這樣它就自動連接 XXX-vc100-mt-gd-1_52.lib.
建議採用關閉自動連接功能。
在附加預約義宏 加 BOOST_ALL_NO_LIB ,這樣就關閉了BOOST的自動連接LIB的功能。而後把須要的lib庫在附加庫裏手動加入。debug