树莓派上安装boost库

一、安装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 file

pi@raspberrypi:~/chen_DIR/weihua/myoptions $ ./s --filename s
finds

 

posted @ 2018-04-02 09:48  习惯就好233  阅读(2029)  评论(0编辑  收藏  举报