windows下编译Boost
- 当前boost最新版本为1.55,下载地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/或者从官网(www.boost.org)下载最新版的BOOST源码,如图所示.
经过测试,2012和2013步骤相同,这里以2012为例。

- 打开VS2012 Native Tools Command,可以从开始--Microsoft Visual Studio 2012找到:

- 将下载的 boost_1_55_0.zip 解压在F盘,例如 F:\boost_1_53_0
执行bootstrap.bat,如图绿框所示:

- 编译,可以简单的使用b2 install,也可以指定存放目录,或者寻找网上其它帮助文章。
查看帮助可以输入:.\b2 --help
比如要开启多线程编译:b2 install threading=multi
设置生成的是debug或者release
备注:如果是使用VS2013,请指定输出库类型,否则会缺一个lib文件:
"无法打开文件 libboost_thread_vc120_mt_sgd-1_55.lib"。
在2013时,我是使用下面的语句进行编译:
// 如果要获取动态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=shared runtime-link=shared threading=multi debug release
// 如果是要获取静态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=static runtime-link=static threading=multi debug release
其中,注意修改--toolset=msvc-12.0,将12.0修改成对应的vs版本号,12.0是VS2013的版本号。
目标地址也要修改成你所需的。
注意,不要漏了install,它会帮你把头文件集合到一个文件夹中。
编译过程有一个复制过程,编译需要的时间比较长,本次编译过程中,会在C盘根目录下生成一个boost文件夹,然后包含include和lib文件夹,这就是我们将要使用的头文件和库文件。

- 编译完了我们就使用编译在C盘中的文件。我将它们拷贝到了F盘,
下图三个文件分别是: 1) 将要使用的boost头文件和库文件。 2) 解压出的boost文件夹,就是使用这个文件夹来进行 1 -- 3步骤的。 3)BoostTest 测试工程。
需要简单的配置两个地方:
这里使用绝对路径,也可以配置环境来使用。

也可以参考阿清给我的文档:添加boost库
Boost是一个和STL类似的标准库,但它扩充了STL使得泛型的优点发挥到最佳,因此现在Boost比STL更为实用。
Step1:下载Boost库,这里我选择下载boost_1_55_0.zipStep2:
解压boost文件到本地目录(如G:\boost_1_55_0),发现解压后的文件中有一个bootstrap.bat文件。然后以管理员身份打开cmd窗口,具体命令bootstrap.bat或者使用对应的VS工具,比如VS2012 x64 Native Tools Command Prompt工具打开cmd窗口,具体命令bootstrap.bat
,上述命令执行完毕后可以发现G:\boost_1_55_0下新生成了一个bjam.exe文件Step3:
对于额外的一些依赖,比如boost.nowide 官网:http://cppcms.com/files/nowide/html/index.html
下载对应的Standard Version: boost_nowide.zip 包后,再合并到标准的boost文件中Step4:
如果需要编译zlib,则需要先去http://www.zlib.net/下载对应的源码包,解压到某一路径
比如boost/otherLib/然后
命令行下设置环境变量 set ZLIB_SOURCE="D:\dyq\P\boost_1_59_0\otherLib\zlib-1.2.3"Step5:
运行bjam.exeStep6:
编译32位静态库:
b2 link=static runtime-link=static threading=multi debug release
编译64位静态mt库:
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=static threading=multi debug releaseb2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=shared threading=multi debug release
编译64位静态md库:
b2 stage --toolset=msvc-12.0 architecture=x86 address-model=64 --stagedir=".\stage\vc12_x64" link=static runtime-link=shared threading=multi debug releaseStep7:
添加boostest工程的包含目录和库目录
包含目录添加 G:\boost_1_55_0
库目录添加 G:\boost_1_55_0\stage\lib注意:
程序的运行时(多线程/多线程DLL)要与库保持一致,否则链接会报找不到文件的错误
windows下编译Boost的更多相关文章
- 如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
- windows下编译boost for android
env: windows xp 32 bit mingw official NDK 1. 下载源代码 地址是 :http://sourceforge.net/projects/boost/fi ...
- windows下编译Boost库
下载源码 boost_1_66_0.7z 生成编译工具 D:\Project\boost_1_66_0> bootstrap.bat 配置Python环境变量(使用VS2017自带的32位pyt ...
- windows下编译和安装boost库
boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...
- [转] Windows下编译OpenSSL
简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...
- Windows下编译objective-C
Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode 目录 ...
- 在Windows下编译FFmpeg详细说明
MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...
- 在Windows下编译OpenSSL(VS2005和VC6)
需要说明的是请一定安装openssl-0.9.8a . openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...
- windows下编译java源文件的编码错误
import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...
随机推荐
- Linux ip配置
ifconfig 查看ip ifconfig eth0 192.168.100.10 netmask 255.255.255.0 或者 ifconfig eth0 192.168.100.1 ...
- Kafka(二)设计原理
1.持久性 kafka使用文件存储消息,这就直接决定kafka在性能上严重依赖文件系统的本身特性.且无论任何OS下,对文件系统本身的优化几乎没有可能.因为kafka是对日志进行append操作,因此磁 ...
- es过滤集提升权重
es { "query":{ "function_score":{ "query":{ "match":{ " ...
- 模拟登陆github
import requests from lxml import etree class Login(object): def __init__(self): self.headers = { 'Re ...
- ES7的async/await
async 表示这是一个async函数,await只能用在这个函数里面. await 表示在这里等待promise返回结果了,再继续执行. await 后面跟着的应该是一个promise对象 awai ...
- Django-F,Q查询,Templatetags,session,中间件
内容总览1.ORM的多对多的使用 1>语法与实例 2>聚合与分组 3>F与Q查询 4>事务2.模板之自定义 1>初始化 2>filter 3>si ...
- postgresql分析函数
参考:https://blog.csdn.net/haohaizijhz/article/details/83340814 SELECT uid, odate, num, sum(num) over ...
- springboot 中页面跳转问题:window.location.href
我的一个HTML页面 点击注册 本该到注册页面,但是却一直跳到同目录的一个Error.html文件夹下 该页面: 删掉Error.html还不行:会报错,而且改变window.location.hre ...
- Unity中锚点的动态设置
问题背景 在做签到系统时,需求给的效果图如下 效果图像这样,中间是模型,周围其他是签到框这样的布局,我想动态生成各个动态框,涉及到一个定位问题,锚点的设置(动态去设置每个item的位置) 实现方法 S ...
- 一个spring mvc 需要用到到文件
一. 类 org.springframework.stereotype.Controller; org.springframework.web.bind.annotation.RequestMappi ...