前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux平台下安装boost库

Linux平台下安装boost库

作者头像
剑影啸清寒
发布2018-01-02 10:11:47
6.3K0
发布2018-01-02 10:11:47
举报
文章被收录于专栏:琦小虾的Binary

Linux平台下安装boost库

今天在给师弟们设计新一代软件框架的时候,需要实现一种功能:存在一种容器,里面存放着不同的数据类型,例如int, double, char,以及一些自己定义的类等等。后来查了一下,实现这种功能最好用C++扩展库boost中的any,所以准备对其进行安装,并进一步使用。

参考链接: http://blog.csdn.net/zgl_dm/article/details/8363843 http://blog.csdn.net/zhoudaxia/article/details/4292953

一、安装Boost

1、下载源码:

进入网址:http://www.boost.org/users/download/ 在官网上可以下载源码包,目前官网上最新的软件包是boost_1_63版本。针对Linux平台,我下载的是boost_1_63_0.tar.bz2文件。

2、编译安装:

解压命令:

代码语言:javascript
复制
tar -xvf boost_1_63_0.tar.bz2

运行解压后生成的bootstrap.sh文件:

代码语言:javascript
复制
cd ./boost_1_63_0
./bootstrap.sh

然后使用b2工具进行安装:

代码语言:javascript
复制
sudo ./b2 install

安装完毕之后,头文件默认在/usr/local/include目录中,.a与.so文件在/usr/local/lib目录下。

二、测试程序

笔者使用的编辑软件是Qt5.7.0。打开Qt Creator,创建新工程,输入测试代码:

代码语言:javascript
复制
#include <iostream>
#include <list>
#include <boost/any.hpp>

typedef std::list<boost::any> list_any;

//关键部分:可以存放任意类型的对象
void fill_list(list_any& la)
{
    la.push_back(10);//存放常数
    la.push_back( std::string("dyunze") );//存放字符串对象;注意la.push_back(“dyunze”)错误,因为会被当错字符串数组
}

//根据类型进行显示
void show_list(list_any& la)
{
    list_any::iterator it;
    boost::any anyone;

    for( it = la.begin(); it != la.end(); it++ )
    {
        anyone = *it;

        if( anyone.type() == typeid(int) )
            std::cout<<boost::any_cast<int>(*it)<<std::endl;
        else if( anyone.type() == typeid(std::string) )
            std::cout<<boost::any_cast<std::string>(*it).c_str()<<std::endl;
    }
}

int main()
{
    list_any la;
    fill_list(la);
    show_list(la);

    return 0;
}

运行结果如下:

代码语言:javascript
复制
10
dyunze
按 <RETURN> 来关闭窗口...

至此,Boost 1.63.0安装完成。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux平台下安装boost库
    • 一、安装Boost
      • 1、下载源码:
      • 2、编译安装:
    • 二、测试程序
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档