Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux平台下安装boost库

Linux平台下安装boost库

作者头像
剑影啸清寒
发布于 2018-01-02 02:11:47
发布于 2018-01-02 02:11:47
6.8K00
代码可运行
举报
文章被收录于专栏:琦小虾的Binary琦小虾的Binary
运行总次数:0
代码可运行

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
代码运行次数:0
运行
AI代码解释
复制
tar -xvf boost_1_63_0.tar.bz2

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd ./boost_1_63_0
./bootstrap.sh

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ./b2 install

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

二、测试程序

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#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
代码运行次数:0
运行
AI代码解释
复制
10
dyunze
按 <RETURN> 来关闭窗口...

至此,Boost 1.63.0安装完成。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Ubuntu20.10中安装boost 1.75库
首先上Boost官网下载Boost 1.75的源代码boost_1_75_0.tar.gz,如下图所示:
ccf19881030
2021/03/22
5.1K0
Ubuntu20.10中安装boost 1.75库
区块链哈希hash游戏技术开发详细方案(成熟代码)
上边代码的编译 g++ test.cpp -lboost_system -lboost_filesystem -o testBoost
系统_I8O28578624
2023/02/07
4410
【C++】开源:Boost进程间通信库InterProcess配置使用
项目Github地址:https://github.com/boostorg/interprocess
DevFrank
2024/07/24
9350
Boost
我今天真的是被这个boost库搞到头炸,怎么在linux下安装boost库,及后续使用。一开始用sudo apt-get install libboost-dev倒是能解决代码中头文件引用不存在问题,但是编译不成功,总是会出现什么未定义引用错误,之后remove掉,重新下载源码编译还是会存在一些问题。
用户1145562
2020/10/23
2.1K0
【三维算法:CGAL】
CGAL是计算几何算法库,是一个大型C++库的几何数据结构和算法,如Delaunay三角网、网格生成、布尔运算的多边形以及各种几何处理算法。
用户3519280
2023/07/06
6620
4.8 C++ Boost 应用JSON解析库
property_tree 是 Boost 库中的一个头文件库,用于处理和解析基于 XML、Json 或者 INFO 格式的数据。 property_tree 可以提供一个轻量级的、灵活的、基于二叉数的通用容器,可以处理包括简单值(如 int、float)和复杂数据结构(如结构体和嵌套容器)在内的各种数据类型。它可以解析数据文件到内存中,然后通过迭代器访问它们。
王 瑞
2023/08/22
7820
C++搭建集群聊天室(一):安装boost库
没有在Windows下开发的打算,代码也是用vim直接干,所以本系列博客是基于Linux平台的开发。 我用的是CentOS8,别的也可以,细微差别而已。 全程root权限下去玩。 不要被环境耽搁了,配个环境赶紧上车吧。
看、未来
2021/09/18
8430
Boost C++ 库 | 多线程
Qt历险记
2024/10/24
4010
Boost C++ 库 | 多线程
4.2 C++ Boost 内存池管理库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。
王 瑞
2023/10/11
4790
vs 下 boost 环境配置
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。Boost库由Boost社区组织开发、维护。提供免费、同行审查的、可移植的程序库。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能。从某种意义上来讲,Boost库成为具有实践意义的准标准库。
我与梦想有个约会
2023/10/20
5600
vs 下 boost 环境配置
Boost C++ 库 | 智能指针(共享指针、共享数组、弱指针、介入式指针、指针容器)入门
Qt历险记
2024/10/10
3640
Boost C++ 库 | 智能指针(共享指针、共享数组、弱指针、介入式指针、指针容器)入门
【C++】开源:Boost库常用组件配置使用
项目Github地址:https://github.com/boostorg/boost
DevFrank
2024/07/24
1.1K0
C++ 中的可移植性和跨平台开发
可移植性是指程序在不同的系统上能够正确地运行,而不需要进行任何修改。C++是一种高度可移植的编程语言,因为它在不同的操作系统和硬件平台上都可以运行。但是,不同的操作系统和硬件平台具有不同的特性和限制,因此需要遵循一些规则来确保程序的可移植性。
小万哥
2023/05/14
9670
C++ 中的可移植性和跨平台开发
从零开始学C++之boost库(一):详解 boost 库智能指针
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Simba888888/article/details/9569593
s1mba
2019/05/25
7.1K0
C++ Boost库 操作字符串与正则
字符串的查找与替换一直是C++的若是,运用Boost这个准标准库,将可以很好的弥补C++的不足,使针对字符串的操作更加容易。
王 瑞
2022/12/28
1.1K0
4.7 C++ Boost 多线程并发库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量、可移植、高效的C应用程序。Boost库可以作为标准C库的后备,通常被称为准标准库,是C标准化进程的重要开发引擎之一。使用Boost库可以加速C应用程序的开发过程,提高代码质量和性能,并且可以适用于多种不同的系统平台和编译器。Boost库已被广泛应用于许多不同领域的C++应用程序开发中,如网络应用程序、图像处理、数值计算、多线程应用程序和文件系统处理等。
王 瑞
2023/08/21
8180
Cpp(四) Boost安装及基本使用 for Mac
文章目录 Boost安装及使用 for Mac #1 环境 #2 开始 #2.1 下载Boost #2.2 安装Boost #3 使用 Boost安装及使用 for Mac #1 环境 CMake 3.17 C++14 macOS 10.15.5 Clion #2 开始 Boost在Mac上安装及使用(Clion) #2.1 下载Boost 地址: https://www.boost.org/users/history/version_1_58_0.html 因为平时使用ROS的原因,所以使用
Autooooooo
2020/11/07
2.5K0
在Visual Sutdio 2017中使用boost库
本文介绍了如何使用Boost库在Visual Studio 2017中实现高精度数学常量的计算,包括圆周率π、自然对数e和根号2等。首先介绍了如何安装Boost库,然后讲解了如何使用Boost库中的高精度数学常量,并给出了一个示例代码。通过使用Boost库,可以在C++中方便地实现高精度数学运算,对于从事科学计算和数学建模等领域的人员来说,具有较高的实用价值。
乐百川
2018/01/09
3.7K0
在Visual Sutdio 2017中使用boost库
线程同步-The Boost C++ Libraries
The Boost C++ Libraries 本博客是Synchronizing Threads的一篇译文。关于《The Boost C++ Llibraries》一书的在线完整书的目录,参见The Boost C++ Libraries,Boost库的官网地址是:https://www.boost.org/,翻译这篇博文时Boost库的最新版本是1.73.0
ccf19881030
2020/05/18
9550
新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法
1,到官网下载最新的boost,www.boost.org 这里我下载的1-63版本. 2,安装,解压后运行bootstrap.bat文件。稍等一小会就OK。 3,编译boost库。注意一定要使用VS2015的x86本机工具命令提示,这个可以在VS2015的安装菜单里面找到。进入命令行提示,输入下面的内容: bjam -j4 --debug-symbols=on --build-type=complete toolset=msvc-14.0 threading=multi runtime-link=shar
用户1177503
2018/02/27
3.4K0
新手,Visual Studio 2015 配置Boost库,如何编译和选择,遇到无法打开文件“libboost_thread-vc140-mt-gd-1_63.lib“的解决办法
相关推荐
Ubuntu20.10中安装boost 1.75库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验