Boost库是一个广泛使用的C++库集合,它提供了对标准库的扩展和增强。Boost线程库是其中的一个组件,允许开发者在程序中创建和管理线程。本文将指导如何在Visual Studio环境中安装和使用Boost线程库,以便可以开始使用它来编写多线程应用程序。
本文旨在为初学者提供一个易于理解的步骤指南,帮助他们在Visual Studio环境中首次设置Boost线程。与许多技术主题一样,虽然有很多信息,但往往缺乏实际操作的指导。本文不深入讨论Boost线程的所有不同用法,而是帮助在没有编译器错误的情况下启动Boost线程,至少对来说,这通常是最困难的部分。
Gavin Baker的“antonymn”页面上有一个不错的Boost线程编程介绍,将在这里复制:
#include <iostream>
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
void workerFunc() {
boost::posix_time::seconds workTime(3);
std::cout << "Worker: running" << std::endl;
// 假装做一些有用的事情...
boost::this_thread::sleep(workTime);
std::cout << "Worker: finished" << std::endl;
}
int main(int argc, char* argv[]) {
std::cout << "main: startup" << std::endl;
boost::thread workerThread(workerFunc);
std::cout << "main: waiting for thread" << std::endl;
workerThread.join();
std::cout << "main: done" << std::endl;
return 0;
}
这个示例代码创建了一个Boost线程对象,传递给它一个示例工作函数,并在完成时退出线程。使用这个简单的例子作为验证Boost线程库成功设置的手段。接下来的部分描述了运行这个简单示例所必需的初步步骤。
如果还没有这样做,请从或下载并安装Boost库。在Visual Studio项目中,选择“配置属性”->“附加包含目录”,并输入安装Boost根目录的路径。在获取以下截图时,使用的Boost版本是1.42.0 - 只需根据版本修改目录路径:
接下来,需要构建bjam.exe程序。发现最简单的方法是使用BoostPro提供的。以例子为例,这是boostpro 1.46.1安装程序。下载并运行此程序。
安装bjam后,打开命令提示符,转到src目录,例如:
C:\Program Files\boost_1_46_1\tools\build\v2\engine\src
从命令提示符运行build.bat。注意,运行此脚本将在bin.ntx86子目录内创建bjam.exe可执行文件:
C:\Program Files\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86
现在选择bjam.exe添加到PATH环境变量中。例如,在Windows 7中,右键单击计算机,选择“属性”和“高级系统设置”:
点击“环境变量…”按钮并选择“编辑”按钮:
包括目录:
C:\Program Files\boost_1_46_1\tools\build\v2\engine\src\bin.ntx86
作为另一个环境变量,确保每个变量之间用冒号(;)分隔:
在命令提示符下,转到C:\Program Files\boost_1_46_1目录并输入“bjam”,等待大约5-15分钟,在此期间程序会被创建:
在Visual Studio项目中,选择“配置属性”->“链接器”->“输入”->“附加依赖项”并输入:
libboost_thread-vc100-mt-gd-1_46_1.lib