VS2012 配置boost1.59

来源:互联网 发布:吉林大学网络教育录取 编辑:程序博客网 时间:2024/05/28 23:10

配置环境: VS2012+boost1.59 (VS2012配置boost建议选择1.60以下版本 不然会在配置中报错 errorC1001 编译器内部错误 ,VS2013可选择1.60以上版本,但需要更新到update5 )

1、Boost编译

     解压源代码找到booststrap.bat 文件。

2、生成编译工具

     进入VS2012 ——X64 cross tools command (从开始进入)

   利用命令行进入 boost文件解压后的文件夹运行booststrap.bat  会自动生成b2和bjam 两种编译工具。  这两个作用是一样的, bjam.exe是老版本, b2是bjam 的升级版本。

3、b2/bjam命令行参数:

本实例中使用:

b2.exe stage --toolset=msvc-12.0 --cxxflags=-DBOOST_NO_CXX11_VARIADIC_TEMPLATES--without-graph --without-graph_parallel --without-math --without-mpi--without-serialization --without-wave --without-test --without-serialization--without-signals --without-python --witout-type_erasure --without-coroutine--without-coroutine2 --stagedir=".\bin\vc12_x64" link=staticruntime-link=shared threading=multi debug release address-model=64architecture=x86

在输入上一步属性,回车之后,等待几分钟,就提示生成成功。最后两个路径会在使用Boost库时工程属性中包含目录和库目录中用到。

4、在vs2012中配置boost

设置64位 Release模式

在属性中选择VC++Directories中将包含目录和库目录设为VS2012 x64 Cross Tools Command Prompt最后配置成功提示的两个路径。然后点击确定。

建立、调试。

可使用下列命令行测试:

#include<iostream>

#include<windows.h>

#include<boost/thread/thread.hpp>

using namespace std;

void helloboost(){

for (i=0;i<20;i++)

cout<<”hello boost”<<endl;

sleep(1000);

}

int _tmain(int argc,_TCHAR* argv[])

{

boost::thread th(&helloboost);

th.join();

system(“pause”);

return 0;

}

要有address-model=64属性,如果没有这个属性的话,会默认生成32位的平台库,加入这个选项才能生成64位的DLL。

如果要生成Boost.Python库,需要先下载安装x64版的Python安装包,我用的版本是3.2.3。在使用这个库编写Python扩展DLL时,默认是使用动态库版的Boost.Python,要使用静态版的必须在C++项目中定义   BOOST_PYTHON_STATIC_LIB宏,这样就不用在使用或发布扩展时带着boost_python-vc90-mt-1_50.dll一起了,当然扩展DLL的尺寸会大些,如果做实验没必要这样,编译又慢生成的文件也大

vs工具链版本:
vs2003 : msvc-7.1

vs2005 : msvc-8.0
vs2008 : msvc-9.0
vs2010 : msvc-10.0