VS2008编译boost库

一、下载
首先从boost官方主页http://www.boost.org/下载最新版boost安装包,我用的版本是boost.1.49.0
二、新建文件夹

   如果是使用下载的安装包,那么请将boost安装包解压至本地新建的目录,如:F:\boost

三、编译

(1)从vs2008的工具菜单进入命令提示窗口(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio tools(工具)”,然后单击“Visual Studio 2008 command prompt(命令提示)”  
(2)cd到F:\boost\boost_1_49_0下执行bootstrap.bat,然后,会在F:\boost\boost_1_49_0\下生成bjam.exe
  

(3)使用bjam命令编译,如下:

bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="F:\boost\boost_1_49_0\bin\vc9" link=static runtime-link=shared runtime-link=static threading=multi debug release


下面详细解释一下每个参数的含义:
stage/install:stage表示只生成库(dll和lib),install还会生成包含头文件的include目录。本人推荐使用stage,因为install生成的这个include目录实际就是boost安装包解压缩后的boost目录(E:\SDK\boost\boost,只比include目录多几个非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套头文件,这样既节省编译时间,也节省硬盘空间。
toolset:指定编译器,可选的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with:选择不编译/编译哪些库。因为python、mpi等库我都用不着,所以排除之。还有wave、graph、math、regex、test、program_options、serialization、signals这几个库编出的静态lib都非常大,所以不需要的也可以without掉。这可以根据各人需要进行选择,默认是全部编译。但是需要注意,如果选择编译python的话,是需要python语言支持的,应该到python官方主页http://www.python.org/下载安装。查看boost包含库的命令是bjam --show-libraries。
stagedir/prefix:stage时使用stagedir,install时使用prefix,表示编译生成文件的路径。推荐给不同的IDE指定不同的目录,如VS2008对应的是F:\boost\boost_1_49_0\bin\vc9,VC6对应的是F:\boost\boost_1_49_0\bin\vc6,否则都生成到一个目录下面,难以管理。如果使用了install参数,那么还将生成头文件目录,vc9对应的就是F:\boost\boost_1_49_0\bin\vc9\include\boost-1_46\boost,vc6类似(光这路径都这样累赘,还是使用stage好)。
build-dir:编译生成的中间文件的路径。这个本人这里没用到,默认就在根目录(F:\boost\boost_1_49_0)下,目录名为bin.v2,等编译完成后可将这个目录全部删除(没用了),所以不需要去设置。
link:生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。
runtime-link:动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static,本人一般就编这两种组合。
threading:单/多线程编译。一般都写多线程程序,当然要指定multi方式了;如果需要编写单线程程序,那么还需要编译单线程库,可以使用single方式。
debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。


四、配置vs2008

  打开tools -->options -->projects and solutions --> vc ++ directories

include目录:F:\boost\boost_1_49_0
library目录:  F:\boost\boost_1_49_0\bin\vc9\lib

五、测试

[cpp] view plaincopy
  1. #include <boost/thread/thread.hpp>   
  2. #include <iostream>   
  3.   
  4. using namespace std;  
  5.   
  6. // method 1  
  7. void hello()   
  8. {   
  9.     cout <<   
  10.         "Hello world, I\'m a thread!"   
  11.         << endl;   
  12. }   
  13.   
  14. int main(int argc, char* argv[])   
  15. {   
  16.     boost::thread thrd(&hello);   
  17.     thrd.join();   
  18.     return 0;   
  19. }   


enjoy yourself !


参考资料:

http://www.cnblogs.com/ComputerG/archive/2011/03/10/1979730.html

http://www.cnblogs.com/wondering/archive/2009/05/21/boost_setup.html

http://www.cnblogs.com/wangkangluo1/archive/2011/08/06/2129566.html (某几处代码有问题)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rtk采点后如何导入cad_【干货】RTK实操视频:工程之星5.0操作攻略!(第五部分)...

前期回顾&#xff1a;【干货】RTK实操视频&#xff1a;工程之星5.0操作攻略&#xff01;(第一部分)【干货】RTK实操视频&#xff1a;工程之星5.0操作教程(第二部分)【干货】RTK实操视频&#xff1a;工程之星5.0操作攻略&#xff01;(第三部分)【干货】RTK实操视频&#xff1a;工…

Git----分支管理之分支管理策略04

通常&#xff0c;合并分支时&#xff0c;如果可能&#xff0c;Git会用Fast forward模式&#xff0c;但这种模式下&#xff0c;删除分支后&#xff0c;会丢掉分支信息。 如果要强制禁用Fast forward模式&#xff0c;Git就会在merge时生产一个新的commit&#xff0c;这样&#xf…

测试英语语法的软件,1Checker,一款实用的英语语法检测软件

语法检测软件众多&#xff0c;使用最顺手的是1Checker。因为工作原因&#xff0c;每两年都要发表至少一篇英文期刊&#xff0c;可我的英文水平写专业论文很欠缺&#xff0c;又不愿意花钱找人翻译检测。就在网上寻找相关的软件&#xff0c;1Checker不是我第一个使用的语法检测软…

企业是否应该实现对客户需求的快速响应_如何做好企业服务?

2018 年&#xff0c;企业级服务仍处于高速增长时期。经过几年的市场洗礼后&#xff0c;企业级服务的市场格局正在逐步明朗。无论是垂直型还是通用型的企业级服务厂商&#xff0c;公司发展核心问题主要围绕客户满意度、产品成熟度、企业健康度三方面:①产品成熟度。成熟的 B 端产…

JavaScript的匿名函数

匿名函数&#xff0c;没有函数名的函数&#xff0c;这种函数一般使用变量来存放。匿名函数的声明方式类似普通函数&#xff0c;一般使用变量保存起来。 示例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"…

OpenMap教程5 – 3层GIS应用程序

1.简介 欢迎使用OpenMap系列教程的第5个教程。 OpenMap是一个免费的开源Java GIS库。 这是以前的教程列表&#xff1a; 在第一个教程中&#xff0c;我们创建了一个基本的OpenMap GIS应用程序&#xff0c;该应用程序在JFrame中显示一个从文件系统加载的具有一个形状图层的地图…

Linux Shell——-if -eq,if -ne,if -gt[笔记]

-eq //等于 -ne //不等于 -gt //大于 -lt //小于 ge //大于等于 le //小于等于

中国计算机手机全部被黑,云南一高校电脑全被黑

0云南一高校电脑全被黑2016-10-14 21:20据云南高校新鲜事儿10月14日消息&#xff0c;网友爆料&#xff0c;云南大学本部文渊楼授课电脑全部被黑。{"info": {"setname": "云南一高校电脑全被黑","imgsum_bk": 4,"imgsum": 4,…

CIFAR和SVHN在各CNN论文中的结果

CIFAR和SVHN结果 加粗表示原论文中该网络的最优结果。可以看出DenseNet-BC优于ResNeXt优于DenseNet优于WRN优于FractalNet优于ResNetv2优于ResNet。ResNeXt-29&#xff0c;8x64d表示29层&#xff0c;ResNeXt分支数为8&#xff0c;每个分支的bottleneck宽度为64。这里记录的结果…

c++可以做什么项目_上班做下班后可以做的兼职项目

当今社会我们常常听到有人抱怨成年人的世界里从来没有容易二字&#xff0c;无论你是在家带娃&#xff0c;还是正常上班。你会觉得消费水平在不断的上涨&#xff0c;但工资却永不见涨。眼看着入不敷出&#xff0c;除了心里急的火急火燎&#xff0c;心里还想着怎样赚到更多的钱&a…

excel中自动填充到最后一行

excel中如果中间没有空行&#xff0c;通过双击黑色十字可自动填充到最后一行&#xff0c;但如果数据中间空行多并且数据多&#xff0c;双击黑色十字只可以填充到空行前面的一行。 这时&#xff0c;可使用ctrlenter组合键实现自动填充。 1、先选中要填充的单元格 2、输入公式 3、…

强制关闭计算机窗口,windows系统怎么取消关机时强制关闭程序提示窗口?

在写经验时&#xff0c;因为要操作用户帐户&#xff0c;结果弄得系统所有设置都恢复到系统默认状态了&#xff0c;其它的就不说&#xff0c;说一下关机时&#xff0c;总会弹出一个“强制关闭程序的提示窗口”&#xff0c;怎样把这个窗口关闭掉呢。找了一些资料&#xff0c;终于…

更改exe程序图标_更改电脑文件夹颜色、样式、图标,让文件夹不再是单一的黄色...

电脑文件夹一般默认的是样式、图标、颜色&#xff0c;如下图所示&#xff1a;文件夹那么&#xff0c;怎样改变这三种设定呢&#xff1f;其实操作很简单&#xff0c;下面小编介绍一个小工具&#xff0c;具体的操作步骤如下&#xff1a;1、首先&#xff0c;下载安装&#xff0c;下…

Codeforces 1058 D. Vasya and Triangle 分解因子

传送门&#xff1a;http://codeforces.com/contest/1058/problem/D 题意&#xff1a; 在一个n*m的格点中&#xff0c;问能否找到三个点&#xff0c;使得这三个点围成的三角形面积是矩形的1/k。 思路&#xff1a; 这个题就是找&#xff08;0&#xff0c;0&#xff09;&#xff0…

afterclass_通过beforeClass和afterClass设置增强Spring Test Framework

afterclass如何允许实例方法作为JUnit BeforeClass行为运行 JUnit允许您在所有测试方法调用之前和之后一次在类级别上设置方法。 但是&#xff0c;通过有意设计&#xff0c;它们将其限制为仅使用BeforeClass和AfterClass批注的静态方法。 例如&#xff0c;以下简单演示演示了典…

联想服务器支持esxi版本,联想中国(Lenovo China)_服务频道_服务政策

Lenovo ThinkServer Partner Pack for VMware vCenter重要通知:ThinkServer RD350/RD450/RD550/RD650/TD350 中Lenovo ThinkServer Partner Pack 被Lenovo XClarity Integrator for VMware vCenter所取代, 请点击如下链接获取:Lenovo XClarity Integrator for VMware vCenter 不…

什么是凸组合?

问&#xff1a;什么是凸组合&#xff1f; 答&#xff1a;凸组合是指&#xff0c;假设x1,x2,...,xn是一组对象&#xff08;要根据讨论问题的背景来确定&#xff09;&#xff0c;a1,a2,...,an是n个常数&#xff0c;并且满足a1a2...an1&#xff0c;那么a1x1a2x2...anxn&#xff0…

字魂35号经典雅黑_2020:上海不锈钢黑钛线条行业

2020&#xff1a;上海不锈钢黑钛线条行业 不锈钢花格可以单独制作&#xff0c;也可以连通整个产品以其制作&#xff0c;如屏风。经热浸镀锌处理后的不锈钢屏风构件隔断&#xff0c;栏杆&#xff0c;窗户&#xff0c;门套&#xff0c;拱门&#xff0c;装饰摆件&#xff0c;灯罩等…

MySQL(一)基础操作

MySQL基础操作 一、MySQL数据库管理 1.登入 mysql -u root -p 然后输入密码 2.查看当前MySQL会话使用的字符集 show variables like character%; 显示如下&#xff1a; mysql> show variables like character%;-----------------------------------------------------------…

Spring管理的Hibernate事件监听器

Hibernate提供事件监听器作为其SPI的一部分。 您可以将您的侦听器挂接到许多事件&#xff0c;包括插入前&#xff0c;插入后&#xff0c;删除前&#xff0c;刷新等。 但是有时在这些侦听器中&#xff0c;您想使用spring依赖项。 我之前已经写过有关如何执行此操作的文章 &…