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