gflags是google开源的一个处理命令行参数的库, 由c++开发, 有python接口. caffe中有用到, 拿来学习下

//test.cpp
#include <gflags/gflags.h>
#include "other.h"
#include "test.h"//自定义参数合法性检查
static bool Validatemyarg(const char* filename, gflags::int32 value)
{if (value>0 && value<100)return true;std::cout<<"Invalid value for "<<filename<<' '<<value<<std::endl;return false;
}
DEFINE_int32(myarg,10,'myarg');
//用gflags::RegisterFlagValidator来检查参数是否合法,用static是防止外部文件访问吗?
static const bool validmyarg=gflags::RegisterFlagValidator(myarg,&Validatemyarg); int main(int argc, char** argv)
{//设置版本号,当在命令行输入test --version的时候会输出该版本号gflags::SetVersionString("1.0.0.0")//设置参数的用法,在命令行中输入test --help,会输出gflags::SetUsageMessage("usage: test <args>\n\n""args:\n"" -myarg: int32 ,1~99\n"); //解析命令行参数, 当第三个参数为true时,解析结束后会将argc设为1,argv只保留原argv[0].当为false时,argc仍为原来的值,但是argv中的元素可能改变顺序gflags::ParseCommandLineFlags(&argc, &argv, true);//otherfunc()定义在others.cpp中,这个是用来检验DECLARE的otherfunc();gflags::ShutDownCommandLineFlags();

test.h

//test.h
#ifndef _TEST_H_
#define _TEST_H_
//DECLARE_int32相当于对变量FLAGS_myarg作extern外部声明
DECLARE_int32(myarg);
#endif

others.h

//others.h
#ifndef _OTHERS_H_
#define _OTHERS_H_
#include "test.h"
void otherfunc();
#endif 

others.cpp

//others.cpp
#include <others.h>
#include <iostream>
void otherfunc()
{//外部变量FLAGS_myargstd::cout<<FLAGS_myarg<<std::endl;
}

除了FLAGS_int32外, 还有参数类型:
* DECLARE_bool: boolean
* DECLARE_int32: 32-bit integer
* DECLARE_int64: 64-bit integer
* DECLARE_uint64: unsigned 64-bit integer
* DECLARE_double: double
* DECLARE_string: C++ string

Google gflags相关推荐

  1. Google Gflags使用

    Google Gflags可以用于参数传递,它是以全局变量的形式进行参数传递,即代码中任何一处都可以调用到它.同时它也提供规范化的参数解析,可以用于主函数的传参. 定义 #include <gf ...

  2. 使用 Google gflags 简化命令行参数处理

    (本文章仅适用于C++程序) 写服务程序时,如果需要提供命令行参数.传统的方法是手工解析argv参数,或者使用getopt函数.两种方法都比较费劲.使用Google gflags可以大大简化命令行参数 ...

  3. google gflags命令行参数处理(c++)

    google gflags介绍 它可以直接从命令行中提取预定义好的参数. 宏定义 例子: // test.cpp #include <gflags/glags.h> // 三个参数:1.定 ...

  4. 【C++】google gflags详解

    参考博客:https://blog.csdn.net/lezardfu/article/details/23753741 0.简介 gflags是google的一个开源的处理命令行参数的库,使用c++ ...

  5. Google gflags使用说明

    gflags是什么: gflags是google的一个开源的处理命令行参数的库,使用c++开发,具备python接口,可以替代getopt. gflags使用起来比getopt方便,但是不支持参数的简 ...

  6. Google gflags安装

    环境: ubuntu12.04 LTS 方法一:apt-get 方法二:手动安装 Step 1. 获取源代码 https://code.google.com/p/gflags/source/check ...

  7. google gflags 使用方法

    首先声明,本文描述的是google用于linux命令行下的gflags库,而非windows下debug内存的gflags. gflags官方地址: https://code.google.com/p ...

  8. google gflags的参数解析,便捷实用

    命令行参数解析,一直是我们后段开发人员需要经常使用的一个功能,用来从终端解析接口的输入 ,并做出对应的处理.这里为使用C++/python的开发人员推荐一个便捷的命令行解析接口集 gflags. 我们 ...

  9. 【gflags 】google gflags 使用方法

    参考: https://blog.csdn.net/jcjc918/article/details/50876613

最新文章

  1. SAP HUM嵌套HU研习之HU03显示内层HU数据
  2. python applymap_运行Python Applymap需要时间
  3. 43. ExtJs控件属性配置详细
  4. python绘制横向堆积柱状图_Python 堆叠柱状图绘制方法
  5. 果断Mark!Searchcode——源代码搜索利器
  6. Linux系统中解压缩指令汇总
  7. python findcontours_基于Python的opencv学习练习(十二) findContours()轮廓与绘制drawContours()...
  8. (转载)UI设计还远没有满足客户的需求
  9. Retrofit请求数据对错误以及网络异常的处理
  10. 全民K歌推荐系统架构、算法及后台设计实践
  11. 文本序号添加/移除工具
  12. linux挂载lvm
  13. 4-vue的生命周期(钩子函数)
  14. 如何让小孩练得一手好字?这5个小方法,家长不妨试试
  15. ubuntu桌面状态栏不见
  16. 2022-2028年全球玻璃棉板收入年复合增长率CAGR为 5.0%
  17. buuctf web warmup详细题解
  18. OkHttp3使用详解
  19. java开发工程师的晋升路径_Java开发工程师职业发展及晋升路线图
  20. ci框架 乱码 mysql_mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法

热门文章

  1. 差点猝死!杭州某互联网大厂员工连续熬夜加班后,引发心肌炎被送ICU病房,公司:她加班是自愿的!...
  2. 电商:大众市场与细分市场
  3. 《首先,打破一切常规》笔记(转)
  4. matlab的导数等
  5. 破解加密狗之维达软件清单计价2008
  6. 百度网盘安装 不能打开要写入的文件的解决方法
  7. 如何使用 Tibco Business Works 6 (BW6) 或容器版 (BWCE) 创建 Restful Web 服务
  8. 2008.12.24李明老师互联网时代的就业与创业讲座总结
  9. 行测-图形推理-3-对称图形类
  10. C#使用IronPython调用Python