树莓派上安装boost库
一、安装boost库
sudo apt-get install libboost-dev
aptitude search 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 ;
} //步骤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 ;
}
编译时要加上库名字:
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
树莓派上安装boost库的更多相关文章
- C++: Mac上安装Boost库并使用CLion开发
1.下载安装Boost库 官网下载最新版本1.65.0:http://www.boost.org/users/history/version_1_65_0.html 选择UNIX版本: 下载后解压cd ...
- 在Ubuntu上安装boost库[转]
在编译kenlm的时候需要安装boost,去官网下载boost安装包,然后按照以下步骤安装. boost官网 -----------------以下内容,网上转载------------------- ...
- ubuntu上安装boost库
只需一条命令: sudo apt install libboost-dev
- linux下编译安装boost库
linux下编译安装boost库 linux下编译安装boost库 1.下载并解压boost 1.58 源代码 下载 解压 2.运行bootstrap.sh 3.使用b2进行构建 构建成功的提示 4. ...
- Centos 安装boost库
1.在http://www.boost.org/下载boost安装包boost_1_65_1.tar.gz 2.在Centos上解压tar -zxvf boost_1_65_1.tar.gz后,cd ...
- 在树莓派上安装Theano
“查遍全网都没人成功在树莓派安装Theano,这是什么样的感觉?” ——写在开头 在这里必须先说一下,由于安装过程中的坑太多了,遇到的问题层出不穷,所以我这里只能记录我安装过程中的印象深刻的问题,如果 ...
- ubuntu 下安装boost库
ubuntu下安装boost库,,在网上试了一些其他人推荐的libboost-dev 但是会缺少,编译程序会报错: /usr/bin/ld: cannot find -lboost_serializa ...
- VS2010下安装boost库
在我们的C++项目中安装boost库,下面以VS2010版本作为例子,其它版本的设置也差不多. 一.编译生成boost库 1.下载最新的boost(本人下载的是boost_1_56_0).boost官 ...
- windows下编译和安装boost库
boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...
随机推荐
- Cent OS (三)vi文本编辑操作
序号 命令 命令含义 1 echo 2 vi/vim 编辑 3 cat cat 命令用于连接文件并打印到标准输出设备上. 4 more 分屏显示文本内容 5 l ...
- nb哒LCA
求欧拉序每log分一块每段找最小值共n/log块然后建st表,复杂度n/log*log = n每块记前后缀最小过至少一块很好求对于在一块的:由于欧拉序的标号前后只会相差1所以序列种类只有2^k种k&l ...
- thinkphp 相关
路径重写,既模式2 需要.htaccess文件放到index.php同级, http.config文件 中当前项目目录配置 AllowOverride All LoadModule rewrite_ ...
- 前端工具-让浏览器兼容ES6特性
babel:将ES6翻译为ES5 问题: 可以处理import和export么? 不能,还是用Rollup或者webpack打包一下吧 可以处理Promise么? 不能,还是使用babel-plugi ...
- shell ssh和mount 挂载问题
任务: 将服务器端数据挂载在板子上 1. 首先ssh问题 spawn ssh $remote_user@$remote_host (1) ssh:connect to host 10.110.6.50 ...
- Java并发AtomicBoolean类~
java.util.concurrent.atomic.AtomicBoolean类提供了可以原子读取和写入的底层布尔值的操作,并且还包含高级原子操作. AtomicBoolean支持基础布尔变量上的 ...
- iis 跨域设置多域名
首先下载 https://www.iis.net/downloads/microsoft/url-rewrite 在最下方 然后在Web.config 文件里面 <configuration&g ...
- 牛客网练习赛 2 烟花(概率dp)
题目传送门 烟花 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge, 64bit IO Format: %lld 题目 ...
- C#设计模式:模板方法模式(Template Method)
一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板 ...
- Java8 LocalDate操作时间和日期的API
时间项目中的涉及到的时间处理非常多,犹豫SimpleDateFormat的不安全性以及Calendar等类在计算时比较复杂, 往往我们都会使用工具类来封装较多的日期处理函数, 但是JDK8中新增了操作 ...