编译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_libraryboostboost_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位库) |
注意:表格中的/
原本是|
。
- Java魔法堂:String.format详解
- Java基础12 类型转换与多态
- linux(七)之linux系统中查找文件
- apache配置多站点
- linux(六)之文本操作
- Java基础11 对象引用
- maven 3.3.9 for windows 配置
- JS魔法堂:再次认识Function.prototype.call
- MySQL(六)之MySQL常用操作符
- 无人驾驶的基本算法及简单介绍
- CentOS6.5安装Java 8以及Tomcat8
- Java基础06 组合
- 警告:MySQL-server-5.6.21-1.linux2.6.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
- MySQL(五)之DDL(数据定义语言)与六大约束
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- HTTP协议的请求与数据抓包
- Ubuntu 18.04 LTS 通过 Netplan 配置网络教程
- 【kafka源码】kafka内部的一些术语
- TKE使用自建NFS持久化存储
- 网站 SSL 检测 PCI DSS 不合规解决办法
- leetcode链表之分割链表
- 五分钟带你读懂 TCP全连接队列(图文并茂)
- Python基础
- JDK15正式发布,新增功能预览!
- Magicodes.IE 2.3重磅发布——.NET Core开源导入导出库
- 安防视频监控系统视频上云解决方案EasyCVR音频基础知识介绍
- 安防视频监控系统视频上云解决方案EasyCVR语音转发功能音频数据打包发送流程介绍
- 视频上云/安防视频融合平台/安防视频云服务EasyCVR通道播放界面出现样式重叠如何修正?
- 什么是MySQL数据库?看这一篇干货文章就够了!
- 折线图