编译boost

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头直接安装到

--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位库)

注意:表格中的/原本是|

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • FFmpeg菜鸡互啄#第1篇#一些基本概念

    播放一个视频文件的流程 ? 封装格式 视频流和音频流按照一定的格式存储在一个文件中。常见的封装格式有mp4、flv、avi、mkv… 视频编码 将视频像素数据(...

    _gongluck
  • Boost asio 官方教程

    7.1. 概述 本章介绍了 Boost C++ 库 Asio,它是异步输入输出的核心。 名字本身就说明了一切:Asio 意即异步输入/输出。 该库可以让 ...

    _gongluck
  • 跟我一起写Makefile

    makefile 介绍 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。 首先,我们用一个示例来说明makefil...

    _gongluck
  • Redis系列(五)-Opserver的监控

    蘑菇先生
  • 2015-2016前端架构体系技术精简版

    werien、vorlonjs远程调试,chrome inspect  代码自动化检查fecs

    IMWeb前端团队
  • 如何做一个高效的前端开发工程师

    不知大家有没类似这样的经历:一天忙到晚,一会被PM叫去确认需求,一会被设计拉去确认UI是否能实现,一会又被测试叫去确认bug,然后貌似做了很多事,但好像工作进度...

    用户4962466
  • 2015-2016前端架构体系技术精简版

    2015-2016前端架构体系技术精简版 ? 点击查看github高清图 点击查看完整版 一、框架与组件 **bootstrap等UI框架设计与实现 伸缩布局...

    IMWeb前端团队
  • 简述架构设计原则

    1.全面解耦原则:对业务进行抽象建模,业务数据与业务逻辑解耦,软硬件解耦,平台和产品解耦,系统各部件解耦。模块、组件高内聚,低耦合。

    后端技术探索
  • 远离996,PDMan开源免费的国产数据库建模工具!

    非常多的实用功能,在易用性上进行了升级优化。 主要更新内容如下: 更形像具体的关联有关系图箭头样式。 数据表精确定位。 连接数据库,直接执行DDL语句。...

    JavaEdge
  • 世界上最著名的国家级APT恶意软件

    Regin被认为是有史以来最先进的恶意软件,由米国国家安全局(NSA)开发。

    糖果

扫码关注云+社区

领取腾讯云代金券