WIN7下,VS2013配置boost库

时间:2022-01-22 17:26:08

Windows7下,VS2013安装boost库

1.       先从官网(www.boost.org)下载最新版的BOOST源码,我下的值最新版本boost_1_62_0.7z,下载下来之后,大小为68.5M

2.       编译源代码(操作很简单)

(本机下载的是boost_1_62_0.7z)
(1)先把源代码放在目标目录下,例如 

F:\InstallProgramingSoftware\boost_1_62_0
(2)在源代码文件夹中找到bootstrap.bat,双击运行即可,过一会之后,源代码文件夹中新增了2个文件b2.exe, bjam.exe

(3)先编译b2.exe

用b2.exe生成64位的lib,指令为:

b2 stage --toolset=msvc-12.0 architecture=x86address-model=64 --stagedir=".\lib\vc12_x64" link=staticruntime-link=static threading=multi debug release

用b2.exe生成32位的lib  我编译的是32位的,编译时间有点小长,指令如下:

b2 stage --toolset=msvc-12.0 architecture=x86--stagedir=".\lib\vc12_x86" link=static runtime-link=staticthreading=multi debug release

3.       测试是否安装成功

1)      新建VS2013的WIN32控制台应用程序,选择空项目,添加一个C++源文件,

测试代码为:

#include<iostream>
#include<boost/thread/thread.hpp>

void hello()
{
std::cout<< "Hello world, I'm a thread!"<< std::endl;
}

int main()
{
boost::threadthrd(&hello);
thrd.join();
}


2)      在项目-》属性-》VC目录中

包含目录,添加:F:\InstallProgramingSoftware\boost_1_62_0

库目录,添加:

F:\InstallProgramingSoftware\boost_1_62_0\lib\vc12_x86\lib

3)在C++-》常规-》附加包含目录中,添加F:\InstallProgramingSoftware\boost_1_62_0

4)在链接器-》常规-》附加包含目录中,添加F:\InstallProgramingSoftware\boost_1_62_0

点击确定,应用之后,就可以编译运行了。

 

编译报错:

报错1boost_1_62_0\boost\type_traits\common_type.hpp(43): fatalerror C1001:编译器中发生内部错误。

错误定位到如下代码段

namespace type_traits_detail
{

template<classT1, classT2, class...T>usingcommon_type_fold =common_type_t<common_type_t<T1, T2>,T...>;

} //namespace type_traits_detail


解决方法如下,将VS2013升级到update5。升级方法可参考:http://jingyan.baidu.com/article/3c48dd349a9616e10be3583d.html

(其中,更新包安装器下载地址为:

www.microsoft.com/zh-cn/download/details.aspx?id=48129

按照这个过程,在更新的过程中会报错,提示:无法找到包源。

建议下载一份完整的cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso 文件,离线安装。
我用的是http://msdn.itellyou.cn/网站的安装包,下载地址为
ed2k://|file|cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso|5567336448|641555AD6472A98923B29CC5E371461E|/

下载后直接安装即可,已装有VS2013的,这次安装过程会把原来的覆盖掉.

VS2013包含Update5的版本安装好后,打开我上面建的测试工程,编译生成。

报错2

1>LINK : fatal error LNK1104: 无法打开文件“libboost_thread-vc120-mt-gd-1_62.lib”

这个是由于多线程调用的问题,修改如下图:

将多线程调试 (/MDd)改为多线程调试(/MTd),保存即可。