VS2015编译boost1.62

Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用只需包括相应头文件即可,少数(如正则表达式库,文件系统库等)需要链接库。但Boost中也有很多是实验性质的东西,在实际的开发中实用需要谨慎。

在VS下,boost的头文件中会包含#pragma comment(lib,xxx)的语句,所以可以不用在项目中添加相关的库指定。

boost中大部分库是仅有头文件,不用编译成库的。

编译好的库可以到这里下载

链接:http://share.weiyun.com/712e3d95bb73d7378a8c34d3518d12f3 (密码:2LNF)

1、源码

源码的下载可以直接去http://www.boost.org/网站下载。

我下载的地址是http://jaist.dl.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.7z

2、生成编译工具

boost库自带了bootstrap脚本来生成一个构建工具b2。打开命令行直接执行即可。

D:\development_library\boost\boost_1_62_0>bootstrap.bat --help
Building Boost.Build engine Failed to build Boost.Build engine.
Please consult bootstrap.log for further diagnostics. You can try to obtain a prebuilt binary from http://sf.net/project/showfiles.php?group_id=7586&package_id=72941 Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.

这里出现了Failed to build Boost.Build engine.错误,解决办法很简单,使用VS 2015 命令行提示符来执行即可。

3、进行编译

b2工具的使用如下

b2 [options] [properties] [install|stage]
#options 选项
#properties 特性
#install|stage 安装还是编译到指定位置

编译命令如下

#编译
b2.exe --prefix=C:\Boost --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=64 stage
#安装
b2.exe --prefix=C:\Boost --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=64 install

目标和相关选项:

选项 含义
install 安装头文件和编译后的库文件到配置的位置(如下)。
--prefix=<PREFIX> 平台架构无关的文件(include/doc等)的安装位置
win32默认在C:\Boost
Unix/Linux默认在/usr/local
--exec-prefix=<EPREFIX> 安装平台架构相关的文件在这里
默认与<PREFIX>相同
--libdir=<DIR> 库文件安装目录
默认<EPREFIX>/lib
--includedir=<HDRDIR> 头文件安装目录
默认<PREFIX>/include
stage 仅构建和安装编译的库文件到stage目录
--stagedir=<STAGEDIR> 安装编译的库文件目录
默认./stage

其他选项:

选项 含义
--build-type=<type> 构建预定义的配置。
注意:构建哪些variants取决于各个库的支持。
minimal(默认) 构建一个最小集(即只构建release版本。 在Windows上,构建debug和release模式下使用共享运行时的静态多线程库。 在Linux上,这些是release模式下的静态和共享多线程库)
complete构建debug和release版本
--build-dir=DIR 构建指定目录(默认中间文件会在源码目录下) 推荐!#
--show-libraries 显示构建的Boost库列表在安装步骤,然后退出
--layout=<layout> 确定是否选择库名和头文件位置,一边可以在同一系统上使用多个版本的Boost库或多个编译器编译的。
versioned版本名,会影响库文件名和头文件路径<HDRDIR>
taggedboost二进制文件的名称包括编译的构建属性(如variant和threading),但不包括编译器名称和版本或Boost版本。如果使用相同的编译器构建Boost的多个变体,此选项将非常有用。
system二进制名称不包括Boost版本号或编译器的名称和版本号。 Boost头直接安装到中。此选项适用于构建分发软件包的系统集成商。
默认值在Windows上为“versioned”,在Unix上为“system”。
--buildid=ID 将指定的ID添加到构建的库的名称。
默认是不添加任何东西。
--python-buildid=ID 将指定的ID添加到依赖于Python的构建库的名称。
默认是不添加任何东西。 但指定了--buildid,还会添加此ID。
--help 显示相关选项说明信息
--with-<library> 构建并安装指定的。
如果使用此选项,将只构建使用此选项指定的库。
--without-<library> 不要构建和安装指定的。
默认是构建所有的。

特性:

选项 含义
toolset=toolset 指示要构建的平台工具集。(VS2015就是msvc-14.0)
variant=debug/release 选择构建variant
link=static/shared 构建静态或共享库
threading=single/multi 构建单线程或多线程二进制程序库
runtime-link=static/shared 静态还是动态链接到C和C ++运行时库
address-model=32/64 寻址模式(生成32位还是64位库)
注意:表格中的/原本是|

VS2015编译boost1.62的更多相关文章

  1. Windows下 VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  2. VS2015编译Boost1.64

    一.下载并解压:boost1.64.0:http://www.boost.org/users/history/version_1_64_0.html 二.以管理员权限运行VS2015命令行工具 三.c ...

  3. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  4. vs2013编译boost1.55.0 32/64位

    在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\detail\has_member_function_call ...

  5. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  6. 用VS2015编译sqlcipher

    简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...

  7. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  8. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  9. vs2015编译caffe

    有些时候,需要在python3的环境下import caffe,需要用vs2015在python3的环境下,编译pycaffe. microsoft的windows版本的caffe,依赖的库Nuget ...

随机推荐

  1. [LeetCode] Single Number III 单独的数字之三

    Given an array of numbers nums, in which exactly two elements appear only once and all the other ele ...

  2. java 过滤器

    1.什么是过滤器?  过滤信息,执行的优先级高于 servlet 2.自定义过滤器的步骤 写一个普通java类,实现Filter接口 2.配置过滤器  web.xm中 import java.io.I ...

  3. ajax 多级联动 下拉框 Demo

    写了ajax实现级联下拉框,考虑常用,并且级联个数随不同业务个数不同,于是就整理了一下,实现了 ajax + N级联动 下拉框的效果 效果图 HTML 代码 <h2> 省级联动</h ...

  4. 理解OAuth 2.0

    转自:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛 ...

  5. 【翻译】XV6-DRAFT as of September 3,2014 第0章 操作系统接口

    操作系统接口 操作系统的任务是让多个程序共享计算机(资源),并且提供一系列基于计算机硬件的但更有用的服务.操作系统管理并且把底层的硬件抽象出来,举例来说,一个文字处理软件(例如word)不需要关心计算 ...

  6. 项目中angular js的接口url统一管理

    为了防止环境改变时需要修改多处接口的url,项目中用到了一个config.json文件来统一管理url: 在src下建立config文件夹,创建config.json文件,主要内容如下: { &quo ...

  7. CTP程序化系统开发(C++ && PHP)

    2016-12-13 11:03:52 借助CTP的DEMO(上海期货交易公司提供的), 需要自己在 http://www.simnow.com.cn  上注册账号, 再者,需要下载[博易大师]软件, ...

  8. spring与hessian整合例

    spring与hessian的简单应用实现例: 开发环境:window7 64,jdk8,tomcat8,spring4.2.5,hessian4.0 开发语言:java hessianServer端 ...

  9. excel批处理_判断一个名称是不是药品

    把药品名称导入到sheet1的A字段 # -*- coding: utf-8 -*-"""Created on Fri Dec  9 09:38:58 2016判断一个名 ...

  10. SpringMVC学习记录2

    废话 最近在看SpringMVC...里面东西好多...反正东看一点西看一点吧... 分享一下最近的一些心得..是关于DispatcherServlet的 DispatcherServlet与Cont ...