从http://www.boost.org/下载boost工程, 当前版本1_45_0.
解开boost_1_45_0.7z到D:/boost_1_45_0/
运行vs2010的命令行"Visual Studio Command Prompt (2010)", 进入到D:/boost_1_45_0/
执行bootstrap.bat, 产生了bjam.exe.
编写一个cmd, 内容如下
./bjam.exe install variant=release link=shared threading=multi runtime-link=shared
运行这个.cmd.
运行完毕后, 在C:/Boost/lib/生成干净的开发库.
头文件: C:/Boost/include/boost-1_45/boost
库文件和Dll: C:/Boost/lib, 文件命名都类似于boost_xx-vc100-mt-1_45.dll.
开始想用vc6来编译, 编译不过. 看了boost.org的帮助后,发现人家都是用vc7和vc8编译的.
下一步的实验是: 在vc6中使用这些boostDll.
vs2010Release版的boost库依赖msvcp100.dll, msvcr100.dll.
/boost_1_45_0/doc/html/index.html和libraries.html 中有使用boost库的例子.
编译前的/boost_1_45_0/libs目录中的*.cpp都是使用boost的例子.
用vc6实验的结果, 编译的时候,只要包含了boost的.h, 就编译不过.
/** 包含的头文件 */ #include "stdafx.h" #include "test_xpressive.h" #include "stdafx.h" #include <cstdlib> #include <stdlib.h> #include <boost/regex.hpp> #include <string> #include <iostream> using namespace std; using namespace boost; /** 编译报错信息: */ /inc/boost/config/suffix.hpp(596) : error C2039: 'typeinfo' : is not a member of '`global namespace'' /** 出错指向的文件 */ #endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS // When BOOST_NO_STD_TYPEINFO is defined, we can just import // the global definition into std namespace: #ifdef BOOST_NO_STD_TYPEINFO #include <typeinfo> namespace std{ using ::typeinfo; } #endif
这有个资料, 编译测试成功了。但是和我这个boost版本不同.
http://blog.csdn.net/gooer/archive/2009/12/10/4981475.aspx
Boost编译和安装
找到了boost_V1.45.0编译测试成功的资料, 没特别的地方.
http://blog.csdn.net/qianyun6/archive/2010/12/06/6057567.aspx
我猜测, 是我计算机上有多个版本的VS引起编译不成功.
那我在Vmware中,装个vsIDE, 然后再实验一下.
用vc6编译boost有编译错误, 文档中说主编译环境是vc7.1~vc10.0.
找到一片2006年使用Vc6编译boost的文章
http://blog.csdn.net/roger_77/archive/2006/01/13/577998.aspx
问了同事, 他在vs2005下编译boost_1.42.0, 没有遇到编译时的错误信息. 编译时看的是boost自带的帮助, 编译全部模块.就是时间长点, 可用.
实验了用vs2005编译boost静态库的实验, 是可以的.
在vc6下同样的步骤,编译不过. cmd->VCVARS32.BAT->bootstrap.bat->bjam.exe, 能直接看到‘typeinfo’没有定义.
资源:在vc6下编译测试boost
http://www.360doc.com/content/11/0112/21/59141_86077353.shtml