第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. java环境基础步骤 svn

    eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 使用eclipse 里Help菜单的"Install New Softwar ...

  2. Ptex源码学习笔记-2

    写入纹理数据: 主要分为五种写入方式:新建纹理.编辑已有纹理.编辑ExtHeader中的指定项.写入元数据和写入指定面的纹理数据.写入过程中数据存在一个临时文件中,在close时才会把临时文件的内容拷 ...

  3. 模板:正则替换之后生成标准的php文件 然后include该文件

    http://www.360doc.com/content/12/0808/16/10388890_229034643.shtml

  4. ffmpeg 音频转换: use ffmpeg convert the audio from stereo to mono without changing the video part

    To convert the audio from stereo to mono without changing the video part, you can use FFmpeg: ffmpeg ...

  5. Fortran 笔记

    1.将字符串写入文本 open(,File=trim("e:\XRIVER_LOG.txt"), ACCESS = 'APPEND')!ACCESS = 'APPEND' 在文本末 ...

  6. 1_UILabel

    // // ViewController.swift // 1_UILabel // // Created by Larry on 2016/12/7. // Copyright © 2016年 nf ...

  7. java程序故障排查脚本之——CPU占用高

    root@ubuntu-B85M-D3H:~/tmp# cat java_Analy.sh #!/bin/bash T=`ps -mp $1 -o THREAD,tid,time|sort -k 2 ...

  8. iOS 自带二维码扫描功能的实现

    自从iOS7以后中新增了二维码扫描功能.因此可以在不借助第三方类库的情况下简单的写出二维码的扫描功能: 原生的二维码扫描功能在AVFoundation框架下,所以在使用原生的二维码扫描功能时要先导入A ...

  9. JS 传值 传址

    在JS中,有两种不同的方式可以操作数据的值,这两种技术分别叫做 传值 和 传址. 传值:在赋值过程中,首先对值进行了一份拷贝,而后将这份拷贝存储到一个变量.对象属性或数组元素中.拷贝的值和原始的值是完 ...

  10. java: R文件重复

    导入eclipse工程到intellij里面, 然后出现各种错误, xxx.R文件重复, 各种资源id在R文件中找不到, 后来发现是intellij默认将整个项目以及gen文件夹作为源代码目录了, 在 ...