BOOST库的安装

boost库是C++标准库,跨平台的,主页为http://www.boost.org/ ,代码和文档都可以在首页中找到下载

与其说此库是作为STL的代替者,不如说此库属于C++的更高一级封装,功能性封装。以个人的理解来看,有如下的分类


C++STLboostACE
面向对象容器,算法功能封装框架提供
把同属性逻辑封装在一起vector,快排算法日志功能,异步网络回调完整的异构网络通讯框架


本系列的目标是可以看着文章直接一步步的开始使用boost库,而非对boost进行详细的分析。最理想的情况是本系统提供的代码可以

直接复制粘贴到各位的程序中去,若能用上,请留言告知一下,感谢:)


一. boost库适合人群

开源代码库非常的多,为何要选择boost库作为开发库,这里存在一个适用的范围,总结如下

1. 跨平台工作需要。若你的代码需要在多个平台上运行,则boost的良好兼容性会让你的麻烦减少很多,如果你用的是Mac OS,相信会更有体会

2. 并非追求极致性能。boost库性能不错,但是,并不适合于极高性能要求的场合,例如腾讯,网易类的数万并发接入的服务器中。当然了,

这类的性能极致要求的场合并不多见,所以,boost库一般情况下适用于大部分场合。

3. 对于基础知识有概念但又没有太多实践的开发者。如资源池,直接

4. 多线程开发者。boost库大部分容器或功能都是线程安全的,可以简单的放心使用。

5. 对安装,使用要求简单者。有很多开发库本身对其他库的依赖性很高,安装本身就比较费劲,boost安装相对简单,大部分情况下使用则仅仅

要求include头文件即可,几乎不用改Makefile,非常方便。

6. 想学习库的实现者,boost几乎所有代码都在头文件hpp中实现,且有大量注释,精简,使用IDE定位也方便,阅读起来比较流畅。


 个人认为boost库的缺点在于,模板用得较多,一旦编译出错,一大堆的错误信息会让人很是头晕。

第二个认为的缺点是,boost库在中国使用的人群貌似也不太大,中文资料相对缺乏。


二. BOOST库的安装

由于本人熟悉Linux环境,故安装过程都为Linux下的环境,安装之前,需要确认是否安装了zlib及libicu,这两个库对boost还是相当重要,

一个是压缩库,一个是unicode库。


先执行yum安装对应的包,


yum install zlib-devel.x86_64 libicu-devel.x86_64


然后运行

 

./bootstrap.sh --prefix=/usr/local

检查完你的C++环境后,就可以执行

./b2 install
即可

输出如下

Performing configuration checks


    - 32-bit                   : no  (cached)
    - 64-bit                   : yes (cached)
    - arm                      : no  (cached)
    - mips1                    : no  (cached)
    - power                    : no  (cached)
    - sparc                    : no  (cached)
    - x86                      : yes (cached)


error: No best alternative for libs/coroutine/build/allocator_sources
    next alternative: required properties: <link>static <target-os>windows <threading>multi
        not matched
    next alternative: required properties: <link>static <segmented-stacks>on <threading>multi
        not matched
    next alternative: required properties: <link>static <threading>multi
        not matched
    - has_icu builds           : yes (cached)

这里看到,会有这些报错,这是1.54.0的小bug,需要把 libs/coroutine/build/Jamfile.v2  文件下的

explicit yield_sources ;

改为

explicit allocator_sources ;

即可,注意,分号不能和sources连在一起,否则编译肯定报错。


另外,若需要mpi的支持,则应该先安装openmpi,然后在boost目录中增加user-config.jam 文件,文件中写入using mpi ;

即可。

由于安装在/usr/local下,所以记得把/usr/local/lib及/usr/local/lib64也加载到ldconfig里面去,执行

echo "/usr/local/lib" >> /etc/ld.so.conf.d/boost.conf 

echo "/usr/local/lib64" >> /etc/ld.so.conf.d/boost.conf 

ldconfig -v



三. 测试

安装完毕后,可以写个简单的测试文件,看看安装效果


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

using namespace std;
int main() {
    int a =5;
    int b =1;
    boost::swap(a,b);
    cout << "a=" << a << ", b=" << b << endl;

}


输出为: a=1, b=5

boost的swap功能生效,boost库安装成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值