Linux平台下安装boost库

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、编译安装:

解压命令:

tar -xvf boost_1_63_0.tar.bz2

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

cd ./boost_1_63_0
./bootstrap.sh

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

sudo ./b2 install

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

二、测试程序

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

#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;
}

运行结果如下:

10
dyunze
按 <RETURN> 来关闭窗口...

至此,Boost 1.63.0安装完成。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

99%运维人都需要的Linux命令大全

1登陆和开关机 关机 halt poweroff init 0 重启 reboot init 6 shutdown shutdown -r 重启 shutodw...

4059
来自专栏happyJared

Linux私房菜:文件目录管理及常见命令

581
来自专栏别先生

mybatis_generator_逆向工程的使用笔记

1:解压mybatis_generator_1.3.1.zip文件。 2:把features,pougins文件夹copy到D:\java\eclipse\ec...

2796
来自专栏自动化测试实战

flask第30篇——宏macro和import标签

然后在templates文件夹中新建index.html文件,并在代码中返回渲染后的文件:

843
来自专栏C/C++基础

Linux命令(49)——export命令(builtin)

export命令为Shell内建命令,用于设置或显示环境变量,环境变量包含变量与函数。

451
来自专栏用户2442861的专栏

linux工作中常用文件操作命令

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

1192
来自专栏流媒体

C语言编译过程

预编译结果解释 # linenum filename flags 分别对应行号、文件、标识。 flag对应的含义

582
来自专栏linux运维学习

linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向

shell介绍 什么是shell, shell是一个命令解释器,提供用户和机器之间的交互。支持特定语法,比如逻辑判断、循环。每个用户都可以有自己特定的shel...

1689
来自专栏流柯技术学院

linux 查找目录或文件详解

查找目录:find /(查找范围) -name '查找关键字' -type d 查找文件:find /(查找范围) -name 查找关键字 -print

1662
来自专栏Python

linux每日命令(1):ls命令

ls命令是linux下最常用的命令。ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单...

832

扫码关注云+社区