win8.1系统vs2013中boost 1.55.0的安装

原创 2014年07月16日 21:48:50

在使用vs2013编译boost-1.55.0之前,先要给boost做下修改:

boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.hpp line:222

template<class U>
static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
       <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
替换成以下内容:

#ifdef BOOST_MSVC
     template<class U>
     static decltype(boost::move_detail::declval<Fun>().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()
           , boost_intrusive_has_member_function_callable_with::yes_type())
           Test(Fun*);
#else
     template<class U>
     static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
           <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
#endif

1、管理员权限cmd中运行:

      "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"编译32位

      "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\vcvars64.bat"编译64位

2、命令行进入boost所在目录,运行bootstrap.bat(我的64位没有执行步骤一出错)

3、32位编译:

      主意要把换行符去掉:把命令复制到记事本去掉换行符

bjam.exe stage --toolset=msvc-12.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-serialization 
--without-wave --without-test --without-program_options --without-serialization --without-signals --stagedir=".\bin\vc12_x86" link=static 
runtime-link=shared threading=multi debug release

     64位编译:

bjam.exe stage --toolset=msvc-12.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-serialization 
--without-wave --without-test --without-program_options --without-serialization --without-signals --stagedir=".\bin\vc12_x64" link=static 
runtime-link=shared threading=multi debug release address-model=64  
4、添加boostest工程的包含目录和库目录

包含目录添加  D:\boost_1_55_0

库目录添加    D:\boost_1_55_0\stage\lib

具体如下图:




5、测试代码:

#include <boost/lexical_cast.hpp>     

#include <iostream>     

using namespace std;

int main()

{

	using boost::lexical_cast;

	int a = lexical_cast<int>("123");

	double b = lexical_cast<double>("123.0123456789");

	string s0 = lexical_cast<string>(a);

	string s1 = lexical_cast<string>(b);

	cout << "number: " << a << "  " << b << endl;

	cout << "string: " << s0 << "  " << s1 << endl;

	int c = 0;

	try{

		c = lexical_cast<int>("abcd");

	}

	catch (boost::bad_lexical_cast& e){

		cout << e.what() << endl;

	}
	system("pause");
	return 0;

}
结果:


 

Ubuntu中执行:

1. 设置执行属性: chmod 755 bootstrap.sh

2.执行(如果已经在当前目录) :    ./bootstrap.sh

3.bjam





bjam命令参数分析

(1)stage/install:

stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:\SDK\boost\boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。

(2)toolset:

指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。

(3)without/with:

选择不编译/编译哪些库。因为python、mpi等库我都用不着,所以排除之。还有wave、graph、math、regex、test、program_options、serialization、signals这几个库编出的静态lib都非常大,所以不需要的也可以without掉。这可以根据各人需要进行选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。

查看boost包含库的命令是bjam --show-libraries

(4)stagedir/prefix:

stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是E:\SDK\boost\bin\vc9,VC6对应的是E:\SDK\boost\bin\vc6,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是E:\SDK\boost\bin\vc9\include\boost-1_46\boost,vc6类似(光这路径都这样累赘,还是使用stage好)。

(5)build-dir:

编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(E:\SDK\boost)下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。

(6)link:

生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。

(7)runtime-link:

动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。

(8)threading:

单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。

(9)debug/release:

编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用编译好的mrpt库配置VS2013

mrpt官网 上提供mrpt库的源代码和编译好的二进制文件,这对于windows用户来说非常方便。如果你想快速地使用mrpt来开发自己的项目,则可以下载Binaries (precompiled) f...

基于Windows8.1(64)和vs2013安装OSG的总结

 1.下好几个安装OSG,必要的软件(在OSG官网都可以找到): 中文官网(里面有很多资料):http://www.osgchina.org/ 1)OSG库:OpenScen...

boost在实际项目中的使用

对于boost在实际项目中的使用应该有一个相对客观的态度,既不能过分使用,在项目中铺满boost,又不能对其畏之如虎,不敢使用。 我想实际游戏开发中,我们的团队伙伴大多应该是跟我一样程度的----对...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

boost1.55.0在Windows下VS2013配置使用

Boost是一个和STL类似的标准库,但它扩充了STL使得泛型的优点发挥到最佳。因此现在Boost比STL更为实用。既然Boost这么实用,那么怎么去在Windows环境下去安装Boost库呢? ...

boost1.55.0安裝及配置

Come From: http://blog.163.com/yungang_z/blog/static/175153133201262445539767/ linux平台下要编译安装除gcc...

Win8.1 64位系统基于VS2013搭建OpenCV2.4.11开发环境

基于x64位的配置,如果你的电脑是32位,将下面的x64全部改成x86即可。 我的OpenCV解压路径是D:\Program Files\opencv根据自己的改变 x64(或者x86)文件夹内还...
  • airpre
  • airpre
  • 2015年04月17日 16:27
  • 309

win8.1+vs2013下安装CGAL(含qt、boost、cmake)

我的CGAL配置环境为:windows8.1+vs2013+qt4.8.6+cmake2.8 CGAL是非常强大的算法几何库,它是基于boost库编写的,因此需要要首先配置boost。为了完成计...
  • yht_roy
  • yht_roy
  • 2014年09月02日 11:27
  • 655

mrpt在win8.1 64bit + vs2013环境下的安装和编译

介绍了mrpt在win8.1 64bit vs2013环境下的安装和编译

WIn10 64bit + Vs2013 + CGAL-4.7+Boost_1_59 +Qt5.5.1 +CMake安装

网上参考了很多,英文的,中文的…… 但主要还是按照官方的文档进行安装的,也极力推荐按照官方文档去进行下载安装以及配置 (http://www.cgal.org/download/windows.htm...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:win8.1系统vs2013中boost 1.55.0的安装
举报原因:
原因补充:

(最多只允许输入30个字)