【fishing-pan:https://blog.csdn.net/u013921430转载请注明出处】

前言

这是很早之前的一个工作了,当时需要修改和重新编译其他实验室的软件的源码,所以需要自己编译Boost。因此对于如何编译Boost一点简单了解,这里分享给大家。(我自己没有使用它做开发哦!如果开发方面的求助,我就爱莫能助了!)

软件工具:VS2013+boost 1.59.0+Win7(X64)

1. 定义

Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。(来自百度百科“Boost库”的内容)

2. 编译工具

在这里,我是采用VS2013进行编译的。因为我需要的是X64位的环境下编译程序,所以需要X64位的Boost库,我们使用X64兼容工具命令提示编译。如果编译32位的库,则采用X86本机工具命令提示编译。

3. 编译过程

我把解压后的文件夹放在了F盘下,我所下载的库版本为1_59_0;首先我们进入Boost的目录,执行bootstrap.bat。

这一步执行完成后,会在boost根目录生成 b2.exe 、bjam.exe 、project-config.jam 、bootstrap.log四个文件。其中,b2.exe 、bjam.exe 这两个exe作用是一样的,bjam.exe 是老版本,b2是bjam的升级版本。接下来,就是输入编译指令。我的编译指令如下;

bjam installstage --toolset=msvc-12.0-agedir="C:\Boost\boost_vc_120"link=shared runtime-link=shared threading=multi debug release  address-model=64

(1) bjam是指采用的编译程序是bjam,也可以是b2Install stage是指编译之后的内容即产生(install)头文件,也产生(stage)库文件。只选择stage就只生成库(静态库及动态库),选择install就还会生成包含目录(include)。

(2) toolset是用来指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008),msvc-11.0(VS2012)等。这里的msvc-12.0是VS2013。

(3) agedir="C:\Boost\boost_vc_120"是指定生成文件的存放路径。

(4) link=shared;生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。这里决定了生成的库的是静态的还是动态的库。

(5) runtime-link=shared;动态/静态链接C/C++运行时库。这里可以认为是生成的库需要怎样去链接,是动态的链接还是静态的链接。详细的举例如下表;

序号

link

runtime-link

生成库

1

static

static

libboost_date_time-vc120-mt-sgd-1_59.lib

libboost_date_time-vc120-mt-s-1_59.lib

2

static

shared

libboost_date_time-vc120-mt-gd-1_59.lib

libboost_date_time-vc120-mt-1_59.lib

3

shared

shared

boost_date_time-vc120-mt-gd-1_59.dll

boost_date_time-vc120-mt-gd-1_59.lib

boost_date_time-vc120-mt-1_59.dll

boost_date_time-vc120-mt-1_59.lib

4

shared

static

报错,无法编译

可以看到link时是否使用“shared”决定了是否产生动态库,而runtime-link决定boost链接系统运行时链接库的方式,静态链接或者动态链接。与之对应的就是如下图中显示的,是选择Multithreaded 还是选择Multithreaded DLL 方式运行库。

(6) threading,单/多线程编译。如果需要编写多线程程序,要指定multi方式;如果需要编写单线程程序,则使用single方式。这里一般选择多线程。

(7) debug release,指定生成的库的debug\release版本。其中

libboost_date_time-vc120-mt-sgd-1_59.lib
libboost_date_time-vc120-mt-s-1_59.lib

上面的有gd为debug版本,下面没有gd的为release版本。

(8) address-model=64,是生成X64位的库需要的指令。

4.编译结果

编译完成后,除了指定路径会生成Boost库和头文件外,在C盘根目录中也会直接生成一个Boost的文件夹,其中也会包含库和头文件。其实头文件不需要单独编译,因为在解压下载下来的包之后,就已经有了头文件,为了节约时,直接复制使用即可;

5.后续处理

后面的工作只需要把库的路径添加到程序的“附加库目录”,把所需的库的名字加入“附加依赖项”即可。

已完。。

【C++】 Boost 库编译技巧总结相关推荐

  1. Boost库编译安装

    一.Boost库介绍 Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成 ...

  2. boost库编译安装以及Qt导入

    1.下载boost安装包 https://www.boost.org/ 2.解压后进行编译安装 bootstrap .\b2 3.在qt中引用boost库 引用头文件 INCLUDEPATH += D ...

  3. Boost库编译指南

    1. Boost 库简介 Boost 是一个开源的 C++ 库集合,提供了许多高质量的库,涵盖了许多不同的领域,如智能指针.多线程编程.正则表达式.数学库等等.Boost 的目标是提高 C++ 程序员 ...

  4. Ubuntu16.04--poco和boost库编译和安装

    poco 法1: 如果有版本的需求则不推荐 sudo apt-get install libpoco-dev # 也可利用新立德软件管理包安装 法2:编译poco源码(推荐) 官网下载:https:/ ...

  5. linux下boost库编译

    编译指定库:例(libboost_thread.so) ./bootstrap.sh --with-libraries=thread ./b2 编译全部库 ./bootstrap.sh ./b2 默认 ...

  6. VS2013引入boost库编译时出现'QueueUserAPC' : is not a member of '`global namespace'

    错误描述: boost/asio/detail/impl/win_thread.ipp(52): error C2039: 'QueueUserAPC' : is not a member of '` ...

  7. 手把手教你:解决boost库编译使用后thread类使用报错的方法

    报错如下: libboost_thread-vc110-mt-1_53.lib(thread.obj) : error LNK2038.... error LNK2038: 检测到"_ITE ...

  8. Ubuntu boost库文件安装编译

    简单介绍 Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发.维护. Boost向来有准标准库之称,很多新特性例如智能指针等都是先在boost中实现,后来被吸收 ...

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

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

最新文章

  1. 递归/回溯:Subsets II求子集(有重复元素)
  2. 第三周项目三-输出星号图(1)
  3. Python3 正则表达式特殊符号及用法(详细列表)
  4. css有些效果不显示,css导入成功但没有效果怎么办
  5. 【虾说区块链】入门区块链,先学分布式系统!一文说明分布式系统与区块链的关系...
  6. tcp文件服务器设计报告,TCPIP协议分析课程设计报告书.doc
  7. CANOpen服务数据对象报文
  8. Java 总结finalize()方法
  9. Java反射机制获取系统@Hide属性
  10. java day23【函数式接口】
  11. 世界三大统计分析软件sas splus spss
  12. C语言实现英文句子单词提取并分离
  13. cdr怎么算曲线周长_cdr怎么计算图形的周长和面积? cdr图形计算长度和面积的技巧...
  14. 微信文件没下载过期了
  15. 脱机使用打印机是什么意思?
  16. QT之鼠标点击事件学习
  17. 专升本第九讲 (WORD+PPT)
  18. dell服务器设置CPU高性能,DellR720服务器提示cpu1 internal error (IERR)
  19. 后端开发——Java
  20. 数据库PostrageSQL-证书认证

热门文章

  1. 三星Nexus S刷回官方4.0.4教程
  2. XShell技巧收集
  3. 没有一款趁手的数据监控软件?试一下NetData不,用了你就绝对离不开他!
  4. Tomcat8史上最全优化实践
  5. Vue前端和Java后端 联调使用AES 前后端加密解密
  6. 容器编排技术 -- Kubernetes kubectl create role 命令详解
  7. 使用Docker制作zentao禅道镜像
  8. debian 9.4 安装教程 linux系统debian9.4图文详细安装步骤
  9. Python使用本地代理 proxy
  10. LeetCode 678 有效的括号字符串,常规栈思路