http://www.cnblogs.com/cuish/p/4175491.html

0、前提

Boost库版本 1.57.0

下载地址

http://www.boost.org/users/history/version_1_57_0.html,选择windows版

编译器:VS2010

编译目标:静态链接库

C/C++运行库链接方式: /MT  /MTd   /MD   /MDd

官网给出的windows平台编译器测试包括

Windows:

GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0

Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0

编译步骤

1、通过VS2010命令提示符工具进入Boost库根目录

比如:H:\Boost\boost_1_57_0

2、运行根目录下批处理文件

bootstrap.bat

3、执行bootstrap.bat后生成4个文件

b2.exe     bjam.exe   bootstrap.log    project-config.jam

4、用 bjam.exe 来编译boost库

关于 bjam.exe编译Boost库的命令行参数的详细参数可以看 这个链接

bjam参数简介

link参数

表示生成静态链接库 或 生成动态链接库, link=static表示生成静态链接库, link=shared表示生成动态链接库。

runtime-link参数

表示使用C/C++运行库的方式,runtime-link=static表示静态链接C/C++运行库,runtime-link=shared标识动态链接C/C++运行库。

 --toolset参数

表示编译boost库的工具集, --toolset=msvc-10.0标识使用VS2010编译,VS版本和工具集版本的对应关系如下:

msvc-6.0 :  VC6.0

msvc-7.0:  VS2003

msvc-8.0:  VS2005

msvc-9.0:  VS2008

msvc-10.0:  VS2010

threading参数

表示使用多线程库还是单线程库, single表示单线程, multi表示多线程

debug  release标识生成debug或release版本

stage参数

表示只生成dll 或 lib,而不生成包含include目录的头文件目录,  如果要生成包含头文件的include目录,需要使用install参数

--stagedir参数

表示生成目录的存放目录

在本文中编译了boost中为每个库编译了4中C/C++链接方式的静态链接库

 ① /MT   /MTd

bjam   stage     --toolset=msvc-10.0  --build-type=complete  --stagedir="H:\Boost\boost_1_57_0\bin\vc10"     link=static    runtime-link=static     threading=multi   debug release

生成的库名字格式

/MT: libboost_atomic-vc100-mt-s-1_57.lib      /MTd:  libboost_atomic-vc100-mt-sgd-1_57.lib

② /MD   /MDd

bjam   stage     --toolset=msvc-10.0  --build-type=complete  --stagedir="H:\Boost\boost_1_57_0\bin\vc10"     link=static    runtime-link=shared     threading=multi   debug release

生成的库文件名字格式

/MD:  libboost_atomic-vc100-mt-1_57.lib         /MDd:  libboost_atomic-vc100-mt-gd-1_57.lib

5、编译完成

每类/MT  /MTd  /MD   /MDd的静态库各有34个lib。

编译完成后,删除boost目录的bin.v2临时目录。

6、在VS中使用boost库

项目属性--VC++目录--包含目录,设置为boost根目录

项目属性--VC++目录--库目录,设置lib文件目录

7、参考文献

VS2010编译Boost 1.56

编译Boost 详细步骤 适用 VC6 VS2003 VS2005 VS2008 VS2010

VS2010编译Boost 1.57 静态链接库的更多相关文章

  1. [转载]GCC 编译使用动态链接库和静态链接库--及先后顺序----及环境变量设置总结

    来自http://blog.csdn.net/benpaobagzb/article/details/51364005 GCC 编译使用动态链接库和静态链接库 1 库的分类 根据链接时期的不同,库又有 ...

  2. GCC 编译使用动态链接库和静态链接库

    1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有 ...

  3. GCC 编译使用动态链接库和静态链接库的方法

    1 库的分类 依据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的.所以生成的可执行文件就不受库的影响了.即使库被删除了,程序依旧能够成功执行. 有别于静态库,动态库的链接是在程 ...

  4. 【转】gcc 编译使用动态链接库和静态链接库

    1 库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 有 ...

  5. Linux GCC编译使用动态、静态链接库 (转)

    原文出处:http://blog.csdn.net/a600423444/article/details/7206015 在windows下动态链接库是以.dll后缀的文件,二在Linux中,是以.s ...

  6. C/C++ 静态链接库(.a) 与 动态链接库(.so)

    平时我们写程序都必须 include 很多头文件,因为可以避免重复造轮子,软件大厦可不是单靠一个人就能完成的.但是你是否知道引用的那些头文件中的函数是怎么被执行的呢?这就要牵扯到链接库了! 库有两种, ...

  7. dll和lib(包括静态链接库和与dll同时生成的lib)

    转:http://blog.csdn.net/galaxy_li/article/details/7411956 1:神马是Dll和Lib,神马是静态链接和动态链接 大家都懂的,DLL就是动态链接库, ...

  8. [拾零]C/C++_代码复用的实现_静态链接库_动态链接库_使用.def导出

    1 静态链接库 1.1 创建静态链接库: 1.在VC6中创建项目:Win32 Static Library 2.在项目中创建两个文件:xxx.h 和 xxx.cpp 3.编译 1.2 使用静态链接库 ...

  9. VS2010编译Qt5.4.0静态库

    http://www.kavenblog.com/?p=375 1.Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DL ...

随机推荐

  1. Redis学习笔记二

    学习Redis添加Object时,由于Redis只能存取字符串String,对于其它数据类型形容:Int,long,double,Date等不提供支持,因而需要设计到对象的序列化和反序列化.java序 ...

  2. diskpart查看硬盘序列号

    WIN + R键运行cmd,进如DOS界面: 1. systeminfo查看OS初始安装时间 2. diskpart工具查看硬盘序列号 (1)diskpart (2)lisk disk 查看主机安装的 ...

  3. 解决Safari高版本浏览器中默认禁用第三方COOKIE(含demo)

    前段时间在项目里遇到了一个比较头疼的问题,就是高版本的Safari中默认会阻止第三方cookie,这使得使用Safari浏览器的用户无法按照正常的业务逻辑进行操作. 问题展现 知识点 什么是第三方co ...

  4. jquery mobile 实现自定义confirm确认框效果

    类似删除的效果,在执行之前,一般需要添加确认对话框,点确认的话执行,取消按钮就不执行,传统的js if(confirm('确定删除吗?')) { //执行代码 } 这种效果比较丑,使用jquery m ...

  5. [IOS 开发] 自定义(重写) UITableViewCell的高亮背景色

    IOS的sdk中,对UITableViewCell的高亮背景色只支持两种颜色,分别为UITableViewCellSelectionStyleBlue和UITableViewCellSelection ...

  6. 用ORBSLAM2运行TUM Dataset数据集

    参照https://github.com/raulmur/ORB_SLAM2/blob/master/README.md 运行 4. Monocular Examples TUM Dataset 数据 ...

  7. 记一次酷派尚锋Y75刷机

    昨天因为手机卡的原因,我的同学帮他的同学刷机,听他说是用刷机精灵线刷的rom包,但是刷机失败了,就来找我把弄好,他是个半吊子水平,刚接触这个东西,也是运气不好,什么刷机失败的问题都让他遇上了,刷了几个 ...

  8. JAVA字符串的相关练习

    /*String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";//生成随机验证码 fo ...

  9. 【Linux】【通信】1.ping不通

    关于为什么ping不通有很多种原因,但直接的表象就网络之间没有成功进行通讯: 在构建虚拟机和win之间的交互时,主要使用了3种网络模式: 桥接bridge VMnet0 主机host     VMne ...

  10. HDU--杭电--1026--Ignatius and the Princess I--广搜--直接暴力0MS,优先队列的一边站

    别人都是广搜+优先队列,我没空临时学,所以就直接自己暴力了 Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)     ...