IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 在树莓派里使用C++库boost -> 正文阅读

[C++知识库]在树莓派里使用C++库boost

由于C++的高性能,在嵌入式或者树莓派这样的系统,采用这样的语言是非常合适的,这样可以在CPU性能不太高的场合,写出处理大量数据和功能的软件,并且运行速度飞快,这样既节省产品成本,又为社会节能作出贡献,因为可以大量节省CPU运算,就可以省电,就可以少浪费化石能源。

而对于linux这样的系统,采用boost库就更加方便了,因为很多功能已经进行封装,使用起来更加方便,不容易出错。那么本文,就来介绍一下怎么样简单地使用boost。

先要安装boost,可以采用源码安装,也可以使用编译库的方式来安装。采用源码安装,自己可以控制不同的版本,但这样需要自己编译,可能会花费比较多的时间。采用已经编译库的方式,就可以快速安装,往往没有最新的版本。

现在先以已经编译好的版本来作为例子。

运行下面的命令:

sudo apt-get install libboost-dev

就可以安装完成boost库,然后就是编写代码:

#include <iostream>
#include <string>
#include <boost/program_options.hpp>
 
namespace bpo = boost::program_options;
using namespace std;
 
int main(int argc, char const *argv[])
{
     //步骤1:构造选项描述器
     //选项描述起,其参数为该描述器名字
     bpo::options_description opts("all options");
     //选项存储器,继承自map容器
     bpo::variables_map vm;
 
     //步骤2:为选项描述器增加选项
     //其参数依次为:key,value的类型,该选项描述
     opts.add_options()
         ("filename", bpo::value<std::string>(), "the file name which want to be found")
         ("help", "this is a program to find a specified file");
 
     //步骤3:先对命令行输入的参数做解析,而后将其存入选项存储器
     //如果输入了未定义的选项,程序会抛出异常,所以对解析代码要用try-catch块包围
     try {
         //parse_command_line()对输入的选项做解析
         //store()将解析后的结果存入选项存储器
         bpo::store(bpo::parse_command_line(argc, argv, opts), vm);
     } catch(...) {
         std::cout<<"Input option not exsited."<<std::endl;
         return -1;
     }
 
     //步骤4:参数解析完毕,处理实际信息
     //count()检测该选项是否被输入
     if(vm.count("help")) { //若参数中有help选项
         //options_description对象支持流输出,会自动打印所有的选项信息
         std::cout<<opts<<std::endl;
     }
     if(vm.count("filename")) {
         //variables_map(选项存储器)是std::map的派生类,可以像关联容器一样使用,
         //通过operator[]来取出其中的元素,但其内部的元素类型value_type是boost::any,
         //用来存储不确定类型的参数值,必须通过模版成员函数as<type>()做类型转换后,
         //才能获取其具体值
         std::cout<<"find"<<vm["filename"].as<std::string>()<<std::endl;
     }
     if(vm.empty()) {
         std::cout<<"no options found"<<std::endl;
     }
     return -1;
}

?进入目录进行编译:

g++-10.1 ?boost_main.cpp -lboost_program_options ? -o boost

编译成功之后,就可以运行编译出来的程序:

./boost ?--help

输出的结果如上图。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-26 11:24:29  更:2022-04-26 11:25:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:05:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码