在Windows上完整的编译boost大约会生成4GB左右的库文件。总的来说有如下分类:
- st和mt,分别对应单线程和多线程。如果你在使用Visual Studio .Net 2005及以上的版本。请直接删除st系列,因为KB154753中提到,The /ML and /MLd library compiler options for static single-threaded libraries were removed in Visual C++ 2005 and in later versions of Visual C++. 令人奇怪的是编译boost的时候它们是怎么跑出来的,在编译器都抛弃它们的情况下…
- 带gd和不带gd的,这个大家都知道,分别是debug和release。
- 带s和不带s的,s当然是指static,但并不是用于static链接,而是指是否已经把runtime library静态链接。
- 以libboost开头和以boost开头的,前者是静态链接用的,后者是动态链接用的。动态链接版本的包括一个链接时需要的lib文件和一个运行时需要的dll文件;而静态链接版本的就只有一个lib文件。
- 带版本号和不带版本号的,这两种完全一样,都是Windows没有符号链接的错。建议保留版本号。
- 后缀带p的是指使用STLport编译的。
通常情况下只需要动态链接的库文件即可,mt和mt+gd,大约25MB而已。但记得定义BOOST_ALL_DYN_LINK宏 ,否则boost的自动链接指令默认的是静态库。