一、安装boost库

sudo apt-get install libboost-dev
aptitude search boost

二、编写测试代码

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

编译时要加上库名字:

g++ -o s main.cpp -lboost_program_options

使用效果:

pi@raspberrypi:~/chen_DIR/weihua/myoptions $ ./s --help
all options:--filename arg        the file name which want to be found--help                this is a program to find a specified filepi@raspberrypi:~/chen_DIR/weihua/myoptions $ ./s --filename s
finds

转载于:https://www.cnblogs.com/ch122633/p/8690235.html

树莓派上安装boost库相关推荐

  1. C++:MAC安装Boost库文件并且使用CLion开发

    boost的filestem库 C++在17版本的标准库中引入了一个filesystem库,用来处理文件路径,以及文件访问.很多编译器对filesystem库的支持还不是很好.为了解决这个问题,可以临 ...

  2. 树莓派上安装 ROS Kinetic

    ROS系统对Ubuntu系统最友好,好像可以直接安装一样,但我找不到可用的,只好在树莓派的原生系统Raspbian上安装和使用ROS系统.我测试的树莓派是 3B, 1G内存,我要去买个4B 8G的. ...

  3. 子豪兄教你在树莓派上安装OpenCV

    子豪兄教你在树莓派上安装OpenCV 子豪兄教你在树莓派上安装OpenCV 安装前提 1.配置好树莓派的Raspbian操作系统 2.切换到国内的apt-get下载源和pip下载源 3.如果你有树莓派 ...

  4. vs2008安装boost库

    vs2008安装boost库 2010年06月10日 首先我在晚上找到了很多的说明:我先一一罗列在下 ************************************************* ...

  5. OpenCV学习(二)---树莓派上安装opencv

    缘由 找到了之前的树莓派,买了一个摄像头,看看能不能也像ubuntu下那样进行人脸识别这种操作,毕竟考虑到使用的便捷性.总不能用电脑来做个产品吧. 前面用单片机做的人脸识别,还是挺简单的,不过准确性来 ...

  6. linux如何编译boost指定库,linux下编译安装boost库

    linux下编译安装boost库 先看一下系统环境 Linux o-pc 3.19.0-22-generic #22-Ubuntu SMP Tue Jun 16 17:15:15 UTC 2015 x ...

  7. windows 一键安装boost库

    windows 一键安装boost库 ORBSLAM保存地图模块需要用到boost库,所以撸起袖子干,先安装boost库,具体流程如下 下载boost库下载链接 2.解压,这个不多说了 3.打开一个命 ...

  8. 树莓派python3.6.8安装opencv_子豪兄教你在树莓派上安装OpenCV

    子豪兄教你在树莓派上安装OpenCV 注意,如要换源,只能按本博客换源方法其他会出错 本文介绍了如何在树莓派上安装分别运行在Python2和Python3的OpenCV. 运行在Python2上的Op ...

  9. 在树莓派上安装OpenCV

    子豪兄教你在树莓派上安装OpenCV 本文介绍了如何在树莓派上安装分别运行在Python2和Python3的OpenCV. 运行在Python2上的OpenCV安装非常简单,几行命令即可搞定.运行在P ...

最新文章

  1. 如何确定最佳训练数据集规模?6 大必备“锦囊”全给你了
  2. 疯狂kotlin讲义连载之运算符和表达式——区间运算符
  3. 使用代理网络配置maven,显示导入失败的原因
  4. 运筹学最优化理论系列概念-单纯形法原理解析
  5. USACO Training Section 1.1 Your Ride Is Here
  6. ubuntu等linux系统给windows共享文件
  7. linux 分区 文件,Linux的分区与文件结构
  8. LF模式是个坑,ZeroIce中间件让你体会这个痛
  9. python单选按钮控件是_第7讲,RadioButton 单选按钮控件
  10. 开发浏览器监控网页数据变化_贝程学院:Selenium辅助开发工具Firebug和Firepath
  11. 陶瓷天线和PCB天线以及IPEX天线三者间区别
  12. 淘宝/天猫直通车基本概念
  13. 过去一年对我帮助最大的三本书
  14. Kafka(四).KafkaJAVA 基础API
  15. 「完美解决」关于最新Ubuntu22.04.1安装launchpad里面PPA报错:“InRelease not available“,“not found file“等
  16. Android第三方开发包之高德地图SDK使用介绍
  17. 一些《点石成金》笔记
  18. FW: 图说 WebAssembly
  19. uniapp 真机调试 click点击事件无效
  20. PHOTOSHOP中的模糊滤镜 【转】

热门文章

  1. Ruby种的特殊变量
  2. Android学习笔记之Intent
  3. 解决ubuntu下无线网络不可用
  4. 应用更新iOS 开发:应用内实现 更新提醒
  5. MyBatis构建sql时动态传入表名以及字段名
  6. ACCESS中如何比较日期和时间,使用DateDiff函数
  7. Ubuntu10.10更新源
  8. 完全二叉树、平衡二叉树、二叉查找树(二叉排序树)
  9. c语言对空指针memcpy,C语言memcpy 断错误
  10. python字符串操作_浅谈Python 字符串特有的操作方法