0%

Boost编译与配置

Boost的下载安装与编译配置

配置boost时出现缺少“*.lib”文件解决(主要是Boost的安装和编译)

参考

下载

  1. 官网下载原始文件:

这里选择红色框中的文件进行下载

解压

  1. 之后将文件解压,放到任意目录,这里将文件放在C盘根目录下:

编译

  1. 进入文件夹,先运行bootstrap.bat

运行结束后会生成 b2.exe可执行文件。

  1. 结束之后开始菜单找到 Visual Studio 2015文件夹,运行目录下面的 VS2015 X86 本机工具命令提示符

  1. 在命令窗口中定位到刚才解压的boost文件夹下,运行如下命令:

b2 -j4 --debug-symbols=on --build-type=complete toolset=msvc-14.0 threading=multi runtime-link=shared address-model=32

需要等待一段时间,即可生成动态链接库

配置

  1. 在VS2015中进行配置

在项目属性中进行设置,右键项目—>属性—>配置属性

a. VC++目录—>库目录 —> 添加路径:C:\boost_1_71_0\stage\lib

之前就是这里没有添加动态链接库所以发生了如下报错:

LNK1104 无法打开文件 libboost_thread-vc140-mt-gd-x32-1_71.lib

b. C/C++ —> 常规 —> 附加包含目录 —> 添加路径: C:\boost_1_71_0

注意: 一定要在项目中添加了 C++ 文件之后,项目属性设置中才会出现 C/C++的选项。

接下来程序就可以正常运行了。

测试

对比程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <boost/thread.hpp>
#include <iostream>
void wait(int seconds)
{
boost::this_thread::sleep(boost::posix_time::seconds(seconds));
}

void threadFun()
{
for (int i = 0; i < 5; ++i)
{
wait(1);
std::cout << i << std::endl;
}
}

int main()
{
boost::thread t(threadFun); // 上面的那个函数
t.join(); // join() 方法是一个阻塞调用:它可以暂停当前线程,直到调用 join() 的线程运行结束。
return 0;
}