VS2010下使用boost库详细步骤(保证可用)

今天抽时间学习了一下boost库,用c++ 做算法,自己再去造轮子实在是浪费时间,学习boost未来工作能直接上手。

比如caffe就直接使用了boost库, 这里边常用的 对于时间操作,字符串操作,文件操作,智能指针等,熟练使用这些能大大的加速算法的开发时间。


一、参考资料:

   1、 http://download.csdn.net/detail/nuoshueihe/5344610    boost程序库完全开发指南--深入C++标准库    书,写的还不错,但是不如看英文文档更直接

2、http://www.boost.org/  boost 官网,在这里下载Version 1.60.0,以及其文档

3、http://blog.csdn.net/kangroger/article/details/39393769  参考编译文档


二、编译过程:

(1)首先下载源代码:http://softlayer-dal.dl.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.zip

解压到某个目录,我解压到了D盘根目录:D:\boost_1_60_0

(2)生成bjam.exe可执行文件

用VS2010命令行

进入到到目录D:\boost_1_60_0,运行booststrap.bat得到:


这时在目录D:\boost_1_60_0生成了b2.exe、bjam.exe、project-config.jam文件。

(3)用bjam.exe编译

运行命令bjam stage  --toolset=msvc-10.0 --build-type=complete --stagedir="D:\boost_1_60_0\bin\vc10"  link=static runtime-link=static threading=multi debug release

参考博客中:

运行命令bjam stage --without-Python --toolset=msvc-10.0 --build-type=complete --stagedir="D:\boost_1_60_0\bin\vc10"  link=static runtime-link=shared threading=multi debug release

 --without-Python 我电脑上提示没有Python,所以把这个库去掉。

bjam可以参考http://blog.chinaunix.net/uid-22301538-id-3158997.html

stage表示只生成库(dll和lib),用install的话还会生成包含头文件的include目录。
toolset指定编译器,VS2010用msvc-10.0。
without/with表示不编译/编译哪些库。
stagedir,当使用stage时用stagedir,使用install用prefix,表示编译生成文件的路径。路径的命名最好和编译器相关,编译管理。
link指定生成动态链接库或静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。
runtime-link,动态/静态链接C/C++运行时库。有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。
threading,单/多线程编译。
debug/release,编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

差不多需要一小时,编译完成(中间会有警告)。

编译好后,在根目录会有个bin.v2文件夹,是编译过程中的临时文件夹,很大,可以手动删除。

(4)在VS中使用Boost库

新建工程后需要把Boost库包含到工程中,右键选择属性,在VC++目录的“包含目录”中添加Boost的根目录(D:\boost_1_60_0),  在“库目录”添加刚刚编译生成的位置再加上路径lib(D:\boost_1_60_0\bin\vc10\lib)。

 

之后包好头文件即可使用,例如一个多线程的测试:

#include <boost/thread/thread.hpp>
#include <iostream>

using namespace std; 

void hello_world() 
{
	cout << "Hello world, I'm a thread!" << endl;
}

int main(int argc, char* argv[])
{
	// 開始一條使用 "hello_world" function 的新執行緒
	boost::thread my_thread(&hello_world);
	// 等待執行緒完成工作
	my_thread.join();

	return 0;
}

(5)必要设置:①  项目--XXX属性--配置属性--C/C++--代码生成--运行库--多线程DLL(/MD);

                        ②  项目--XXX属性--配置属性--链接器--输入--忽略特定默认库--添加 MSVCRT.lib;

最后测试可以运行,安装成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值