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
五、测试
- #include <boost/thread/thread.hpp>
- #include <iostream>
- using namespace std;
- // method 1
- void hello()
- {
- cout <<
- "Hello world, I\'m a thread!"
- << endl;
- }
- int main(int argc, char* argv[])
- {
- boost::thread thrd(&hello);
- thrd.join();
- return 0;
- }
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 (某几处代码有问题)
转载于:https://passport.csdn.net/account/login?ref=toolbar,在此对作者表示感谢!
另注:若在VS2010中编译的话,则参数toolset设定为msvc-10.0。
http://blog.csdn.net/chence19871/article/details/19562481
VS2008编译boost库的更多相关文章
- vs2008编译boost
vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库 ...
- 编译 boost 库(win7+boost1.60+vs2008)
参见:http://blog.csdn.net/u013074465/article/details/42532527 下载boost安装包 https://sourceforge.net/proje ...
- Linux下编译boost库和qt和ImageMagick
需要把整个PCIE的工程移植到Linux下,当初就是用cmake来管理的工程的.但是命令行之类的还是需要改动.改动还不少,cmake里面很多东西都依赖于windows.包括我用cmake重新管理的工程 ...
- ndk 编译 boost 库,支持serialization
Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C+ ...
- windows上编译boost库
要用xx库,编译boost时就指定--with-xx.例如: # 下载并解压boost_1.58 # 进入boost_1.58目录 bjam.exe toolset=msvc-14.0 --build ...
- VS2017编译boost库
1.http://www.boost.org/ 下载boost库. 2.解压到 D:\ProgramFiles\boost 3.环境配变量配置 VS2017更加注重跨平台性,安装文件较 ...
- windows下编译Boost库
下载源码 boost_1_66_0.7z 生成编译工具 D:\Project\boost_1_66_0> bootstrap.bat 配置Python环境变量(使用VS2017自带的32位pyt ...
- linux下编译Boost库
下载源码 boost_1_66_0.tar.gz 生成编译工具 # tar axf boost_1_66_0.tar.gz # cd boost_1_66_0 # yum install gcc gc ...
- IOS上编译boost库
环境:xcode9mac os 10.13 1.下载boost库并解压2.cd到解压后的文件包内,执行 sh bootstrap.sh(解压后会得到这个脚本文件).3.执行./b2 编译整个库.4.经 ...
随机推荐
- 使用ThinkPHP开发中MySQL性能优化的最佳21条经验
使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更 ...
- python爬图
闲的无事,看着知乎里种种python优点,按捺不住,装起python3.4. 网上找了点爬行图片的代码,修改至兼容3.4,成功爬行指定url所有jpg图片,代码段如下: import os impor ...
- mysql 1054错误
往数据库插入数据的时候报错,插入数据的是这样的 [SQL] insert into stock(code,name,b_price,s_price,num,rate,profit) values (1 ...
- Xmemcached
http://blog.csdn.net/yuwenruli/article/details/8478201
- Mysql explain 查看分区表
mysql> explain select * from ClientActionTrack where startTime>'2016-08-25 00:00:00' and start ...
- Python中:self和__init__的含义 + 为何要有self和__init__
Python中:self和__init__的含义 + 为何要有self和__init__ 背景 回复: 我写的一些Python教程,需要的可以看看 中SongShouJiong的提问: Python中 ...
- Bayesian Formulation on Cooperative Tracking
Suppose a joint state representing a set of \(N_{n}\) nodes moving in a field\[ \textbf{X}= \b ...
- BMP彩色转成黑色二值图
一天半把彩色bmp转成黑白了. 原理是: 第一步:读出位图数据的偏移位置:即第11个字节,用fseek即可. 然后将偏移位置之前的数据全部写入新的bmp图中. 第二步:用fseek移到位图数据这前,判 ...
- 【HDU 5532 Almost Sorted Array】水题,模拟
给出一个序列(长度>=2),问去掉一个元素后是否能成为单调不降序列或单调不增序列. 对任一序列,先假设其可改造为单调不降序列,若成立则输出YES,不成立再假设其可改造为单调不增序列,若成立则输出 ...
- C Statements
1,while((ch = getchar()) != EOF){ putchar(ch);}2,while((ch=getchar()) != EOF){ if(ch < '0' ...