mark一下boost
2013-03-28 19:06
183 查看
http://blog.sina.com.cn/s/blog_40b056950100ht8p.html
出处:http://hi.baidu.com/vc_net/item/3dc5d0d9f07741e955347f45
windows下boost怎样安装与使用说明?
第1步:先从官网(www.boost.org)下载最新版的BOOST源码,如图所示
随便下哪个都行,我这里下的是82M的那个
第2步:
编译源代码(放心.这里是傻瓜式的操作,很容易操作)
(1)先把源代码放在D盘,例如 D:\boost_1_46_1
(2)在源代码中找到一个批处理bootstrap.bat,运行即可
此时会弹出Building Boost.Jam之类,过一会之后,源代码中新增了1个文件bjam.exe
用bjam程序编译Boost库。把生成的bjam.exe(bin.ntx86目录下)拷贝到Boost根目录下,如D:\Program Files\Boost\boost_1_42_0。进入控制台,用cd命令进入Boost根目录下,使用bjam编译Boost,输入命令:
bjam --toolset=borland(对应BCB)或msvc(对应VC)或gcc(对应Mingw)
stage
例如:(第一个是编译,第二个是安装)
bjam --toolset=msvc-8.0 --build-type=complete --prefix="d:\Program Files\Boost\boost_1_42_0" stage
bjam --toolset=msvc-9.0 --build-type=complete --prefix="d:\boost_1_42_0" install
参数说明:
toolset:所使用compiler,Visual Studio 2005 为 msvc-8.0。
build-type:编译类型,complete表示生成所有的版本(debug,release等)。
prefix:指定编译后library的的目录。
开始编译Boost库,编译时间比较长(大概半小时左右,依编译器以及选项不同而不同),编译好的文件会放在.\stage\lib(依--stagedir=命令决定)里。
(3)运行bjame.exe即能编译了(花费时间很长,大概40分钟,目前机器性能就这样).
问题1:文件大小
下载的boost库80M左右,编译完之后是2G,区别是很大.200倍的差距,要有个心理准备,放在磁盘位置大点的地方
问题2:库版本
目前我用的是1.46.1的版本,编译出来的是VS2010版本的库,这句话什么意思?
就是说VS2008不能用1.46.1的版本,会报错
1>正在链接...
1>LINK : fatal error LNK1104: 无法打开文件“libboost_thread-vc90-mt-1_46_1.lib”
中间有个VC90,于是我在BOOST库里1个1个的找这个库,发现没有,但是有个VC100
如图所示:1个是VS2008编译的报错.1个是新版BOOST库并没有VC90,只有VC100
或许有些不太明白.没关系.在编译bjam.exe时,我截了一幅图,图中全是VC100,根本没有VC90
这里想表达的意思:就是不同的版本可能编译出的库名不一样,一定要注意
-----------------------------安装完后,下面就讨论一下怎么用了
一共2个例子 第1个:怎样使用BOOST库写个线程的Hello World? 第2个怎样使用BOOST库写try,catch?
--->举例1:怎样使用BOOST库写个线程的Hello World?
第1步:新建一个VS2010控制台应用程序,选择空项目->增加一个C++源文件
可以先用
void main()
{}
测试下,可以编译了
第2步:
添加BOOST创建线程的代码
#include <iostream>
#include <boost/thread/thread.hpp>
void hello()
{
std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main()
{
boost::thread thrd(&hello);
thrd.join();
}
第3步:编译,发现报错
1> hello.cpp
1>f:\vc测试\boost怎样写线程\boost怎样写线程\hello.cpp(2): fatal error C1083: 无法打开包括文件:“boost/thread/thread.hpp”: No such file or directory
即没有包含BOOST文件与BOOST库的文件,怎样添加,如图所示
包含目录添加D:\boost_1_46_1
库目录添加D:\boost_1_46_1\stage\lib
添加完这2个就可以编译运行了.结果如下:
--->举例2:怎样使用BOOST库写try,catch?感觉try,catch在BOOST中用的顶多的,这里顺便也介绍一下写法
第1步:同举例1一样,新建项目,包含文件与库,一样.这里只是在上面的基础上拷贝了一下代码
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;
int main()
{
//std::cout<<"hello, world!";
string str = "12345K";
try
{
cout << boost::lexical_cast<int>(str) << endl;//字符串用string
}
catch (boost::bad_lexical_cast& e)
{
cerr<<"Bad cast: "<< e.what() << endl;
}
return 0;
}
结果如图:
附注1:代码不需要上传了,直接新建一个文件,拷贝上面的代码,就能运行,这样更快
注意点1:BOOST库没有上传,以后若是要用,如果本机没有的话,从官网www.boost.org重新下载一个最新版的用
注意点2:以后上传的项目中,包含的BOOST文件的路径与库路径是本机
包含目录添加D:\boost_1_46_1
库目录添加D:\boost_1_46_1\stage\lib
除了这两个目录其他文件装完后可以删除
这个目录,因为这个路径是随意的.所以以后即取即用的时候注意改下路径即能直接用了
附注2:安装好后,以后若想写BOOST程序,直接包含那2个路径即可,直接调用BOOST库的函数了,当然这是针对windows操作系统与VS2010说的,在linux下以后会更新怎样使用
附注3:另外有几个网址也是讲初次安装与使用BOOST的网站,我也是看了那几个自己总结的.网址如下
http://blog.csdn.net/shellching/archive/2009/07/23/4373298.aspx
http://blog.csdn.net/vagrxie/archive/2009/05/27/4219066.aspx
http://blog.chinabyte.com/a/515686.html
http://blog.chinabyte.com/a/515686.html
供参考
http://bbs.csdn.net/topics/390301855?page=1 regex_search 多次匹配
相关文章推荐
- 互联网研发模式考虑(感觉不错,mark一下)
- 梯度下降取负梯度的简单证明,挺有意思的mark一下
- 开始弄Spark,Mark一下
- mark 一下
- 博客开通了,以后有学习感想就来mark一下
- m2eclipse插件地址,mark一下
- 解除网页锁定,Mark一下
- Mark一下 Nested weights are bad for performance
- 总是容易忘记zen coding里怎么写标签text, mark一下吧
- 今天开通CSDN博客,特此Mark一下,以后会经常更新!!!
- Mark一下:PE文件中的DEP和ASLR标志
- mark 一下 PhantomJS
- Mark一下,好好学习,天天向上!
- Mark一下:成为CSDN博客专家
- 信息课来mark一下,顺便RP++
- 应用类----IOS的一些开源项目,控件,mark一下,不断更新中
- 发现一个安全牛人的博客, mark 一下
- 梯度下降取负梯度的简单证明,挺有意思的mark一下
- Mark一下,android vold分析
- mark一下。hadoop分布式系统搭建