1. 当前boost最新版本为1.55,下载地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/或者从官网(www.boost.org)下载最新版的BOOST源码,如图所示.

    经过测试,2012和2013步骤相同,这里以2012为例。

  2.  打开VS2012 Native Tools Command,可以从开始--Microsoft Visual Studio 2012找到:
     
     
     
  3.  将下载的 boost_1_55_0.zip 解压在F盘,例如 F:\boost_1_53_0

    执行bootstrap.bat,如图绿框所示:

     
  4.  编译,可以简单的使用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文件夹,这就是我们将要使用的头文件和库文件。

     
     
  5. 编译完了我们就使用编译在C盘中的文件。我将它们拷贝到了F盘,

    下图三个文件分别是:   1) 将要使用的boost头文件和库文件。   2) 解压出的boost文件夹,就是使用这个文件夹来进行 1 -- 3步骤的。   3)BoostTest 测试工程。

    需要简单的配置两个地方:

    这里使用绝对路径,也可以配置环境来使用。

    也可以参考阿清给我的文档:

    添加boost库
    Boost是一个和STL类似的标准库,但它扩充了STL使得泛型的优点发挥到最佳,因此现在Boost比STL更为实用。
    Step1:下载Boost库,这里我选择下载boost_1_55_0.zip

    Step2:
    解压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.exe

    Step6:
    编译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 release

    b2 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 release

    Step7:
    添加boostest工程的包含目录和库目录
    包含目录添加 G:\boost_1_55_0
    库目录添加 G:\boost_1_55_0\stage\lib

    注意:
    程序的运行时(多线程/多线程DLL)要与库保持一致,否则链接会报找不到文件的错误

     

windows下编译Boost的更多相关文章

  1. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  2. windows下编译boost for android

    env: windows xp 32 bit mingw official  NDK 1. 下载源代码    地址是 :http://sourceforge.net/projects/boost/fi ...

  3. windows下编译Boost库

    下载源码 boost_1_66_0.7z 生成编译工具 D:\Project\boost_1_66_0> bootstrap.bat 配置Python环境变量(使用VS2017自带的32位pyt ...

  4. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  5. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  6. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  7. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  8. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  9. windows下编译java源文件的编码错误

    import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

随机推荐

  1. 文件共享服务器share

    文件共享服务器:(类似于FTP服务器) 1.创建共享:文件夹右键属性--共享--开启共享--设置共享名--设置共享权限(建议设置为everyone完全控制,然后具体的权限需求在ntfs权限中设置即可) ...

  2. IDEA中debug启动tomcat报错。Error running t8:Unable to open debugger port(127.0.0.1:49225):java.net.BindException"Address alread in use:JVM_Bind"

    解决办法: 1,如下图打开项目配置的tomcat的“Edit Configurations...” 2,打开“Startup/Connection”--------"Debug"- ...

  3. JAVA进阶16

    间歇性混吃等死,持续性踌躇满志系列-------------第16天 1.桌球游戏小项目 ①窗口加载 import javax.swing.*; public class BallGame exten ...

  4. 2018-2019-2 20165325 《网络对抗技术》 Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165325 <网络对抗技术> Exp6 信息搜集与漏洞扫描 实验内容(概要) 1 各种搜索技巧的应用: 2 DNS IP注册信息的查询: 3 基本的扫描技术 ...

  5. 20175204 张湲祯 2018-2019-2《Java程序设计》

    Arrays和String单元测试 一.类的作用 1.- String类 charAt String的charAt的作用是将字符串中第i个位置上的字符(从0开始计数)赋值给n,其用法为n=string ...

  6. C++中public/protect/private三种访问权限控制

    一.成员访问权限控制 1.public (1)public成员变量可以被成员函数访问  [访问性] (2)public成员可以被实体对象访问  [访问性] (3)public成员可以成为子类成员  [ ...

  7. JVM内存模型分析(一个程序运行的例子)

    (.class字节码)类加载到内存之后,内存模型:(ps:.class文件可以通过javap 指令反编译成一个可读文件) 1.java栈,本地方法栈,程序计数器(每个线程私有) 看如下程序: 以该程序 ...

  8. mysql-数据(记录)相关操作(增删改查)及权限管理

    一.介绍 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT查 ...

  9. python学习记录20190122_增量赋值

    python中的增量赋值 一,在python中a=a+b和a+=b有区别吗 **1,对可变的数据类型 a=[1,2,3]print(id(a)) #1602469350792b=[4,5]a=a+bp ...

  10. java 冒泡排序 day003

    一.冒泡排序: 利用冒泡排序对数组进行排序 二.基本概念: 依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数, ...