第1步:

先从官网(www.boost.org)下载最新版的BOOST源码,如图所示

我这里下的是zip的那个
第2步:
编译源代码(放心.这里是傻瓜式的操作,很容易操作)
(1)先把源代码放在E盘,例如 E:\boost_1_53_0
(2)在源代码中找到一个批处理bootstrap.bat,运行即可
此时会弹出Building Boost.Jam之类,过一会之后,源代码中新增了1个文件bjam.exe
(3)运行bjame.exe即能编译了(花费时间很长,大概20分钟).
问题1:文件大小
下载的boost库80M左右,编译完之后是1.6G,区别是很大.放在磁盘位置大点的地方

 

问题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
不同的版本可能编译出的库名不一样,一定要注意

PS:问题2本人没遇到,如遇到,网上有一种方法可一试:

配置编译环境:
.../boost_1_53_0/tools/build/v2中的user-config.jam文件,最后增加一行:using msvc : 6.0 : D:/Program Files/Microsoft Visual Studio/VC98/Bin/cl ;注意上行的格式,冒号两边一定有空格,最后分号一定有空格(因为c++代码中并没有如此苛刻的格式限制,所以一开始没太注意,总也解决不了错误,最后试着才找到这个原因)。
msvc : 8.0是VS2005
msvc : 10.0是VS2010

安装完后,下面就讨论一下怎么用了
一共2个例子 第1个:怎样使用BOOST库写个线程的Hello World? 第2个怎样使用BOOST库写try,catch?
--->举例1:怎样使用BOOST库写个线程的Hello World?
第1步:新建一个VS2005控制台应用程序,选择空项目->增加一个C++源文件
可以先用
void main()
{}
测试下,可以编译了
第2步:
添加BOOST创建线程的代码

  1. #include <iostream>
  2. #include <boost/thread/thread.hpp>
  3. void hello()
  4. {
  5. std::cout << "Hello world, I'm a thread!" << std::endl;
  6. }
  7. int main()
  8. {
  9. boost::thread thrd(&hello);
  10. thrd.join();
  11. }

第3步:编译,发现报错

1> hello.cpp
...\hello.cpp(2): fatal error C1083: 无法打开包括文件:“boost/thread/thread.hpp”: No such file or directory
即没有包含BOOST文件与BOOST库的文件,怎样添加,如图所示

包含目录的添加:

库目录的添加:

包含目录添加E:\boost_1_53_0
库目录添加E:\boost_1_53_0\stage\lib
添加完这2个就可以编译运行了.结果如下:

举例2:怎样使用BOOST库写try,catch?感觉try,catch在BOOST中用的顶多的,这里顺便也介绍一下写法
第1步:同举例1一样,新建项目,包含文件与库,一样.这里只是在上面的基础上拷贝了一下代码

  1. #include <iostream>
  2. #include <string>
  3. #include <boost/lexical_cast.hpp>
  4. using namespace std;
  5. int main()
  6. {
  7. //std::cout<<"hello, world!";
  8. string str = "1234t";
  9. try
  10. {
  11. cout << boost::lexical_cast<int>(str) << endl;
  12. }
  13. catch (boost::bad_lexical_cast& e)
  14. {
  15. cerr<<"Bad cast: "<< e.what() << endl;
  16. }
  17. return 0;
  18. }

结果如图:

【转自:http://hi.baidu.com/vc_net/item/3dc5d0d9f07741e955347f45,有较多修改】

boost的编译的更多相关文章

  1. Linux平台Boost的编译方法

    本博客(http://blog.csdn.net/livelylittlefish)贴出作 者(三二一@小鱼)相关研究.学习内容所做的笔记,欢迎广大朋友指正! Linux平台Boost的编译方法 Bo ...

  2. Boost库编译安装

    一.Boost库介绍         Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其 ...

  3. boost vc编译

    0.下载:http://www.boost.org/ 1.编译b2.exe,bjam.exe. 双击根目录下面的bootstrap.bat文件,生成b2.exe,bjam.exe(或者使用vs的命令行 ...

  4. boost:asio编译

    参考:http://hi.baidu.com/need_for_dream/blog/item/c14a28086a504c33e92488b5.html 环境: VS2010, boost1.38. ...

  5. boost.python编译及演示样例

    欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46781581 linux编译boost的链接:http://bl ...

  6. boost 部分编译

    完整编译boost库需要很长时间,而且我们不一定会用到所有的库. 那么如何只编译只需要的库呢? 解压boost源码,进入解压后的目录 ./bootstrap.sh生成bjam ./bjam --bui ...

  7. Boost 库编译总结

    1. 下载boost库源码,解压缩. 2. 打开vs2010 工具栏tools 下的visual studio command prompt,运行源码目录下的bootstrap.bat,生成bjam. ...

  8. Boost库编译后命名方式

    Boost官网的<Geting Started On Windows>(http://www.boost.org/doc/libs/1_38_0/more/getting_started/ ...

  9. boost多线程编译出错

    添加 -lpthread CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/tools/boost/includeexport CPLUS_INCLUDE_PATH LI ...

随机推荐

  1. CUDA代码的高亮设置

    以下基于"WIN7(64位)+Visual Studio 2010+CUDA7.5". 语法高亮除了看起来舒服之外,还可以使用F11寻找函数.变量定义,输入函数的时候也会有相应的提 ...

  2. 在css嵌套中的html的table里的字左右不对齐

    [现象]AAAA与天数的数字左右不居中 <table border=1 align="center"> <tr> <td width="20 ...

  3. Bootstrap Table Examples

    The examples of bootstrap table http://bootstrap-table.wenzhixin.net.cn/examples/ http://www.jq22.co ...

  4. Android开发学习---使用XmlPullParser解析xml文件

    Android中解析XML的方式主要有三种:sax,dom和pull关于其内容可参考:http://blog.csdn.net/liuhe688/article/details/6415593 本文将 ...

  5. Windows XP SP3 VC6环境下成功编译openssl-0.9.8zh

    1.下载openssl-0.9.8zh解压到f:\openssl-0.9.8zh 下载nasm-2.12.03rc1解压到D:\develop\nasm-2.12.03rc1并把添加到系统环境变量PA ...

  6. Android开发工具全面转向Android Studio(1)——准备开发环境

    工欲善其事必先利其器,本文适合Android新手以及用过Eclipse而没用过Android Studio开发Android的老手,众所周知,谷歌是不会再维护和开发ADT了,旧的ADT已经是完全不能渲 ...

  7. The different between ng-grid & ui-grid

    ui-grid is replacing ng-grid, and support for ng-grid is getting thin as most of the original (2.x) ...

  8. Win7(32bit)下Qt5.5.0和OpenCV2.4.9环境的搭建

    之前一直基于Windows平台(Win 7 32bit)使用VS2010做OpenCV的开发,现在开始学习在Windows 下使用Qt做OpenCV的开发.本文主要讲述Windows平台下(Win 7 ...

  9. vs2015里给c#添加轮廓折叠功能

    轮廓折叠,在看代码时非常有用的功能,可以暂时屏蔽大段不相关的if/else分支 记得以前老版vs里是自带这功能的,c++和c#都有 但不知为啥最新的2015里c#没有了,搜了下原来是要装插件: htt ...

  10. 自己实现atoi的功能

    整理思路: #include <stdio.h> int len(const char *s) { ; while (s[len]) { len++; } return len; } in ...