第一步:

在boost官网下载boost压缩包。

第二步:

解压缩压缩包,执行bootstrap.bat,生成b2.exe和bjam.exe(他们只是版本不同的产物,但是用法一致,bjam是之前版本的,b2 是最新的)。

第三步:

编译前提示:
命令:
b2.exe --help
b2.exe --show-libraries

编译命令参数:

stage/install:

stage 表示只生成库(dll 和 lib),install 还会生成包含头文件的 include 目录。推荐使用 stage,因为install 生成的 include 目录实际就是源码包下的 boost 目录,需要 include 的时候可以直接使用,不需要再次生成,这样可以节省大量的编译时间。

toolset:

指定编译器,可选的如 borland、gcc、msvc-14.0(VS2015)等。如果不指定,会自动搜索本地可用的编译器(可查看 ./project-config.jam 文件以确认)。

without/with:

选择不编译/编译哪些库(类似于黑名单/白名单)。–with-python(with前两个-,后面一个) 的含义是仅编译 python,其他的都不编译。反过来,如果用–without-python,意思就是除了 python, 其他的都编译。with/without 参数可以多次出现,以限定多个库。如果不设置 with/without 参数,默认全部编译,可能需要几个小时的时间!需要注意,编译 Boost.python 需要确保本地安装了 Python,并且 python 命令已加入环境变量。

stagedir/prefix:

stage 时使用 stagedir,install 时使用 prefix,表示编译生成文件的路径。推荐给不同的编译环境指定不同的目录,如
Visual Studio 2015 的 x86 应用对应的是 bin/lib32-msvc-14.0,x64 应用对应的是bin/lib64-msvc-14.0。如果都生成到一个目录下,将没有任何益处,徒增管理难度。如果使用了 install
参数,那么还将在上述指定的目录下生成 include 目录,用于保存头文件。

build-dir:

编译生成的中间文件的路径,默认是 Boost 根目录下的 bin.v2 目录,一般无需设置。

link:

指定生成动态链接库还是静态链接库,取值为 static|shared。生成静态链接库使用 static,生成动态链接库需使用 shared。如不指定,默认使用 static。静态库的缺点是占用空间比较大,优点是程序发布的时候无需附带 Boost 库的dll,比较整洁。推荐使用静态库的方式编译 Boost.python,这样发布程序的时候就不用 Boost 的 dll了,并且也多占用不了太多空间。

runtime-link:

指定运行时是动态还是静态链接其他库。同样有 shared 和 static 两种方式。如果不指定,默认是 shared,一般无需设置。

threading:

要编译的库是单线程还是多线程,可取值 single|multi。如果不指定,默认是 multi,一般无需设置。

variant:

debug|release,编译 debug 版本还是 release 版本。一般与最终发布的程序是 debug 还是 release
版相对应。如果不指定,默认两个都编译,一般无需设置。

address-model:

编译成 32 位版本还是 64 位版本,可取值 32|64。如果不指定,默认两个版本都编译。如果是编译
Boost.python,该参数就要与本地安装的 Python 位数相对应,否则编译会出错,因此最好设置一下。

编译例子:

只编译chrone:
b2.exe toolset=msvc-14.0 threading=multi link=static runtime-link=static address-model=64 --with-chrone

将会在stage/lib下生成:
libboost_chrono-vc140-mt-sgd-x64-1_71.lib
libboost_chrono-vc140-mt-s-x64-1_71.lib

编译所有库:
b2.exe stage toolset=msvc-14.0 threading=multi link=static runtime-link=static address-model=64
目录仍然为stage/lib

特别注意:

参数link和runtime-link总共有4种组合方式:
涉及到静态库共有两种,即runtime-link分别为static、shared。
其中又分别包含variant 分别为debug、release的情况。
使用静态库时,静态库的编译选型一定要与使用该静态库的编译选项一致。

编译时参数分别为:
link = static runtime-link = static variant = debug
link = static runtime-link = static variant = release
link = static runtime-link = shared variant = debug
link = static runtime-link = shared variant = release

参考资料:
boost库生成文件命名和编译
Boost库命名规则

VS2015 编译boost相关推荐

  1. VS2015编译boost 1.62.0

    参考链接: http://blog.chinaunix.net/uid-22301538-id-3158997.html D:\boost_1_62_0>bjam –toolset=msvc-1 ...

  2. boost.asio openssl zlib protobuf icu vs2015编译

    很早以前基于boost.asio开发了服务器程序,今天需要重新准备一下编译环境,把过程记录下来做个备份. 现在的windows平台开发环境win10 + vs2015 编译protobuf 2.6.1 ...

  3. VS2015编译Boost1.64

    三.cd到boost解压目录 四.运行bootstrap.bat生成bjam.exe编译工具 五.使用bjam编译boost库 命令: bjam install stage --toolset=msv ...

  4. Windows下 VS2015编译boost1.62

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

  5. 使用vs2015编译、部署ssd-caffe(weiliu89版,CPU模式)

    使用vs2015编译.部署ssd-caffe(weiliu89版,CPU模式) 前因项目所需,须训练一个快速模型以实现目标物体的实时检测.历经多次实践,发现MobileNetSSD网络符合要求,故在本 ...

  6. vs2017编译boost库 ,解决无法打开文件“libboost_filesystem-vc140-mt-1_58.lib” 问题

    注:本文为工作问题记录,有些还未搞清楚原理,请见谅. 借鉴了网上分享的资料,感谢. 错误 LNK1104 无法打开文件"libboost_filesystem-vc140-mt-1_58.l ...

  7. C++ Boost库:windows下编译Boost库

    文章目录 1. 需要编译的boost库 2. 编译步骤 3. 库命名规则 4. VS配置库目录 C++ Boost库:简介和第一个示例程序 C++ Boost库:数值转换 lexical_cast C ...

  8. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...

    摘要:本文介绍了Win7 64位环境下OpenCC(Open Chinese Convert) 1.0.4源码编译全过程,除VS2017外,VS2013以上版本也应该基本同样适用,其他版本的Windo ...

  9. linux C++安装并编译boost库

    编译安装 ​​​​ wget https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.tar.gz tar -zxvf b ...

  10. windows下编译boost

    使用的编辑器是qt,qt自带mingw编译器.因此编译boost也是采用mingw编译. 1. 设置mingw路径到环境变量中 2. 验证设置正确gcc -v 3. 进入boost目录,找到build ...

最新文章

  1. lodop打印不显示页码_CAD上明明有图,但是打印的时候不显示怎么办?原来要这样设置...
  2. Silverlight Downloads
  3. 我的爸爸是xiang目经理.....
  4. C# WinForm程序退出的方法比较
  5. 获取今天,昨天,本周,上周,本月,上月时间
  6. gcc 的visibility
  7. 怎么在matlab中图像中外接矩形,Matlab 最小外接矩形
  8. java7代码示例_Java中的七种排序方式代码示例
  9. 国内搜索大哥iOS面试题
  10. 老男孩教育每日一题-第106天-MySQL如何授权用户admin:password远程访问权限
  11. macOS装机必备(软件测试人员)
  12. RTL8211E网口芯片在Uboot下调试问题
  13. Python索引 说明
  14. python -- 拉勾网爬虫模拟登录
  15. 小心你的Python程序,它会是你的一面镜子。小方块闯迷宫.py源代码简析。
  16. linux 重定向 2 gt gt,Linux命令- echo、grep 、重定向、1gt;amp;2、2gt;amp;1的介绍
  17. 胡阳pyhton作业题--20150730
  18. Bootstrap3动态添加的元素tooltip不生效
  19. java 图像合成加相框_合成走进相框人物照片效果的PS教程
  20. 青柠起始页样式书写+清新风格登录界面——Html+Css+JavaScript

热门文章

  1. LINUX进程内存占用查看
  2. FindTask练习
  3. Linux系统维护人员的必备参考书
  4. 6.go import
  5. 19. 网购秒杀系统架构分析
  6. 6. 隐藏 index.php
  7. 15. 从远程库克隆
  8. php中几个操作函数参数的函数func_num_args() func_get_args() func_get_arg($i)php
  9. SqlParameter类——带参数的SQL语句
  10. 在linux系统上启动oracle的服务