Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2621563
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: C/C++

2012-08-05 13:19:54

  基本上C++的一本书快看完了,Boost库的东西也了解了很多,还是很想敲敲键盘,顺便使用下Boost库,据说Boost库还没有纳入C++标准,不过应该很快了。里面确实很多东西让你爽暴!下面来自网友的安装方法,windows下其实比在linux下复杂多了。

点击(此处)折叠或打开

  1. 前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库 

  2. apt-get install mpi-default-dev  #安装mpi库

  3. apt-get install libicu-dev     #支持正则表达式的UNICODE字符集 

  4. apt-get install python-dev     #需要python的话

  5. apt-get install libbz2-dev

  6. 上述函数库装好之后,就可以编译boost库了。解压boost_1_49_0.tar.bz2,得到/boost_1_49_0,将当前工作目录切换到此文件夹下。

  7. ./bootstrap.sh
  8. 生成bjam,上述命令可以带有各种选项,具体可参考帮助文档: ./bootstrap.sh --help。其中--prefix参数,可以指定安装路径,如果不带--prefix参数的话(推荐),默认路径是 /usr/local/include 和 /usr/local/lib,分别存放头文件和各种库。执行完成后,会生成bjam,已经存在的脚本将会被自动备份。注意,boost 1.49会在当前目录下,生成两个文件bjam和b2,这两个是一样的,所以接下来的步骤,可以用这两个中的任意一个来执行。

  • /**********************这是为了能够使用mpi库*********************/
  • huanglei@huanglei-laptop:~/boost_1_41_0$ find ./ -name user-config.jam
  • ./tools/build/v2/user-config.jam
  • huanglei@huanglei-laptop:~/boost_1_41_0$ sudo vim tools/build/v2/user-config.jam
  • 在最后增加using mpi
  • /**********************这是为了能够使用mpi库*********************/

    1.  接下来就是利用生成的bjam脚本编译源代码了

    2. ./bjam -a -sHAVE_ICU=1  #-a参数,代表重新编译,-sHAVE_ICU=1代表支持Unicode/ICU
    3. 注意,这里是全部编译。当然也可以选择只编译一部分,选项 --with-<library> 只编译指定的库,如输入--with-regex就只编译regex库了。

    4. bjam的一些常用的参数,列表如下:

    5. --build-dir=<builddir>    编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)
    6. --stagedir=<stagedir>    存放编译后库文件的路径,默认是stage
    7. --build-type=complete    
    8. 编译所有版本,不然只会编译一小部分版本,确切地说是相当于:

    9. variant=release, threading=multi;link=shared|static;runtime-link=shared

    10. variant=debug|release    决定编译什么版本(Debug or Release?)
    11. link=static|shared    决定使用静态库还是动态库
    12. threading=single|multi    决定使用单线程还是多线程库
    13. runtime-link=static|shared    决定是静态还是动态链接C/C++标准库
    14. --with-<library>    只编译指定的库,如输入--with-regex就只编译regex库了
    15. --show-libraries    显示需要编译的库名称
    16.  编译完成后,进行安装,也就是将头文件和生成的库,放到指定的路径(--prefix)下

    17. ./bjam install
    18.  至此,如果一切顺利,就完成安装了。写个小程序检验下,来自《Boost程序库完全开发指南——深入C++“准”标准库(修订版)》(罗剑锋著,电子工业出版社2012.5)

    19. #include <boost/timer.hpp>
    20. #include
    21. using namespace std;
    22. using namespace boost;
    23.  
    24. int main()
    25. {
    26.     timer t;
    27.     cout << "max timespan: " << t.elapsed_max() / 3600 << "h" << endl;
    28.     cout << "min timespan: " << t.elapsed_min() << "s" << endl;
    29.  
    30.     cout << "now time elapsed: " << t.elapsed() << "s" << endl;
    31.  
    32.     return EXIT_SUCCESS;
    33. }
    最直接的方法:(可以试试)
    apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost-*

      
    阅读(9263) | 评论(0) | 转发(1) |
    给主人留下些什么吧!~~