一、环境说明:
1. 本人的VS6.0安装在C:/Program Files/Microsoft Visual Studio目录;
2. boost解压后的根目录为:F:/boost_1_33_1
二、编译bjam:
1. 执行(双击或在命令行中): F:/boost_1_33_1/tools/build/jam_src/build.bat
产生一个子文件夹 bin.ntx86,里面有个可执行文件bjam.exe
(如果你的同时默认安装了VC6和.net,那就需要在控制台中指定编译器,因为我们要用VC6编译器,
所以实际执行时带上参数msvc,也即是执行"build.bat msvc")
2. 拷贝这个可执行文件"bjam.exe"放到“F:/boost_1_33_1”目录.
三、设置环境变量:
1. 打开控制台(cmd),在命令行执行后面的步骤.
2. 添加“F:/boost_1_33_1”到操作系统的环境变量path中:
SET path="F:/boost_1_33_1";%PATH%
3. 先执行以下命令,设置VC编译环境:
SET MSVC_ROOT="C:/Program Files/Microsoft Visual Studio/VC98"
SET VISUALC="C:/Program Files/Microsoft Visual Studio/VC98"
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=F:/Python2.2.2
SET PYTHON_VERSION=2.2
4. (还是在控制台中)进入“C:/Program Files/Microsoft Visual Studio/VC98/bin"目录,
运行"VCVARS32.BAT”.
四、编译完整的boost:
1.然后转到“F:/boost_1_33_1”目录,
最后运行下面的命令来编译boost库:(仍然是同一个控制台窗口!否则无效)
bjam -sBOOST_ROOT=. -sTOOLS=msvc "-sBUILD=debug release static/dynamic"
(大概有15分钟左右吧才编译完,而且编译还出错.如:
...failed updating 58 targets...)
以上命令解释如下:
-s 即set,设置环境变量;
BOOST_ROOT boost的存放目录
TOOLS 你选择的toolset,如gcc、msvc(即vc6)、vc7.1,此外还有gcc-stlport、msvc-stlport、vc7.1-stlport,表示同时使用stlport。具体支持何种toolset,大家可以自行到$BOOSTDIR/tools/build/v1看个究竟。
BUILD 编译类型,上述选项表示编译出支持static和dynamic链接的debug和release版本(4个版本)。
五、配置头文件,库文件:
1. 编译后的lib、dll将被生成到F:/boost_1_33_1/bin/boost/libs目录下.
但是这些lib、dll分散在不同的目录下,为了便于使用,可以在上述目录下分别查找*.lib和*.dll找出这些文件,
自己建立一个专门用于存放生成的*.lib和*.dll文件的文件夹,命名为"libs_vc6",大小为46.8MB 。
2. 自己建立一个专门用于存放boost有关文件的目录:
头文件:
F:/include,lib,src/Boost_VC6/Include files:存放Boost头文件的目录,里面有一个"boost"文件夹,是从
F:/boost_1_33_1/里复制"boost"文件夹过来的.
(注意:在VC中包含此头文件的时候,包含的是"F:/include,lib,src/Boost_VC6/Include files",
而不是"F:/include,lib,src/Boost_VC6/Include files/boost".)
库文件:
F:/include,lib,src/Boost_VC6/Library files:存放Boost库文件的目录,里面有两个文件夹:
一个是刚才自己建立一个专门用于存放生成的*.lib和*.dll文件的文件夹,即"libs_vc6";
另一个是"libs",从F:/boost_1_33_1里复制"libs"文件夹过来的.
(注意:在VC中包含库文件的时候,应该包含两个目录:
"F:/include,lib,src/Boost_VC6/Library files/libs_vc6",
"F:/include,lib,src/Boost_VC6/Library files/libs".)
源文件:
F:/include,lib,src/Boost_VC6/Source files:存放Boost源文件的目录,跟头文件一样.
在VC中包含源文件的时候,路径为:
"F:/include,lib,src/Boost_VC6/Source files"
3. 然后选择Tools->Options->Directories->Include files:
将上述头文件目录路径添加到VC的环境设置中;
选择Tools->Options->Directories->Library files:
将上述库文件目录路径添加到VC的环境设置中;
选择Tools->Options->Directories->Source files:
将上述源文件目录路径添加到VC的环境设置中。
六、测试代码:
在VC中建立Win32 Console Application工程, 添加如下代码:
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <iostream>
boost::mutex io_mutex;
void count() //worker function
{
for (int i = 0; i < 10; ++i)
{
boost::mutex::scoped_lock lock(io_mutex);
std::cout << i << std::endl;
}
}
int main(int argc, char* argv[])
{
boost::thread thrd1(&count);
boost::thread thrd2(&count);
thrd1.join();
thrd2.join();
return 0;
}