首先声明,本文描述的是google用于linux命令行下的gflags库,而非windows下debug内存的gflags。
gflags官方地址: https://code.google.com/p/gflags/
gflags作用:简化命令行参数的解析,作用同get_opt()类的操作。
安装方法
./configure
make
make install
使用方法:
  • 定义flags
  • 注册参数检查函数(可选)
  • 调用解析函数(ParseCommandLineFlags)
定义flags
使用 DEFINE_xxx 函数定义各个参数。
定义函数参数:参数名, 默认值, --help时的说明文字。
例如下面的 DEFINE_bool(big_menu, true, "Include 'advanced' options in the menu listing");
使用方法为 ./foo --big_menu=false
默认值为true
说明文字: "Include 'advanced' options in the menu listing"
数据类型有:
DEFINE_bool: boolean
DEFINE_int32: 32-bit integer
DEFINE_int64: 64-bit integer
DEFINE_uint64: unsigned 64-bit integer
DEFINE_double: double
DEFINE_string: C++ string
例:
   #include <gflags/gflags.h>DEFINE_bool(big_menu, true,"Include 'advanced' options in the menu listing");DEFINE_string(languages, "english,french,german","comma-separated list of languages to offer in the 'lang' menu");
注册参数检查函数(可选)
bool port_dummy = google::RegisterFlagValidator(&FLAGS_port, &ValidatePort);
第一个参数为之前定义的需接续的参数
第二个参数为检查函数
具体的各个函数定义可见gflags.h
例子见下文。
当初始化检查失败时,程序退出。
重设参数值失败时,不改变原值。
调用解析函数(ParseCommandLineFlags)
参数定义和注册函数均完成后,调用下面的函数开始解析命令行。
google::ParseCommandLineFlags(&argc, &argv, true);
其他
使用 "./foo -flagfile foo.conf" 可将参数行写进文件中。(文件中的参数不可以使用空格做分割,需要使用等号做分割)
google : :SetUsageMessage(usage) 可以用来设定usage说明。
如果再其他文件中需要使用,则建议用DECLARE_xxx声明在头文件中,各处include该文件。
一个完整的例子
foo.h
#include <iostream>
#include <gflags/gflags.h>DECLARE_int32(port);bool ValidatePort(constchar* flagname, int32_t value);
foo.cpp
#include "foo.h"DEFINE_int32(port, 0, "What port to listen on");bool ValidatePort(constchar* flagname, int32_t value) {if (value > 0 && value<32768)   // value is okreturn true;printf("Invalid value for --%s: %d\n", flagname, (int)value);return false;
}
foo_main.cpp
#include <iostream>
#include "foo.h"int main(int argc,char*argv[])
{std::string usage("This program does nothing.  Sample usage:\n");usage += std::string(argv[0])+" --port 1234 \n or :\n -flagfile=foo.conf";google::SetUsageMessage(usage);bool port_dummy = google::RegisterFlagValidator(&FLAGS_port,&ValidatePort);google::ParseCommandLineFlags(&argc,&argv,true);std::cout<<"port :"<< FLAGS_port<< std::endl;return EXIT_SUCCESS;
}
有错误请指正,转发劳驾帖个地址。

google gflags 使用方法相关推荐

  1. 【gflags 】google gflags 使用方法

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

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

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

  3. Google Gflags使用

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

  4. 谷歌浏览器怎么截图 Google Chrome截图方法

    核心提示:那怎么才能让Google浏览器具备截图的功能呢?今天就讲解google浏览器如何截图的经验. 谷歌浏览器怎么截图 Google Chrome截图方法 用的不少浏览器都有截图的功能,但是Goo ...

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

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

  6. 谷歌SEO优化入门:Google SEO优化方法(2021最新)

    在写这篇文章的时候,SEO禅先挖掘了下什么网站关键词适合当标题,这篇文章分享如何做谷歌SEO优化,内容是谷歌推荐的SEO方法,本来想用SEO优化方案作为标题关键词,考虑了下这么零散的知识点不太适合,还 ...

  7. android之无法登陆google play解决方法

    android之无法登陆google play解决方法 参考文章: (1)android之无法登陆google play解决方法 (2)https://www.cnblogs.com/zyppac/p ...

  8. 【C++】google gflags详解

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

  9. Google gflags安装

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

最新文章

  1. 计算机维护常识_系统篇
  2. 【组合数学】指数型母函数 应用 ( 多重集排列问题 | 不同球放在不同盒子里 | 奇/偶数序列的指数生成函数推导 )
  3. 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)...
  4. 《机器学习实战》chapter06 支持向量机
  5. ls 命令还能这么玩?看一下这 20 个实用范例
  6. dedecms怎么改php版本_PHP程序员进阶之路
  7. 【py技巧】使用reload重导入修改过的包或模块
  8. Helm 3 完整教程(十):Helm 函数讲解(4)加密函数、编码和解码函数
  9. 2016年最火的15款HTML5游戏引擎
  10. java计算机毕业设计校园流浪猫图鉴管理系统的设计与实现源码+数据库+系统+lw文档+部署
  11. java isbn_java – 将ISBN10转换为ISBN13
  12. 优秀的程序员是不用过圣诞节的
  13. Simple---强大的XOM工具
  14. 使用python统计excel两文件数据,excel公式为countif
  15. 开放API接口整合多元办公能力,企业微信助IT企业打造高效办公平台
  16. 产品创新案例分析|大疆如何从初创到无人机帝国的进阶之路
  17. cmap用法,很详细(转)
  18. linux中flac安装
  19. matlab等高线不显示,Matlab提示ZData 为非有限时,无法显示等高线图
  20. [智能家居] 手把手教你自制HomeAssistant人体感应器

热门文章

  1. Golang 中使用 JSON 的一些小技巧 陶文 陶文 3 个月前 有的时候上游传过来的字段是string类型的,但是我们却想用变成数字来使用。 本来用一个json:,string 就可以支持了
  2. 机房空调中断多久对服务器影响,机房空调故障之后,大家都惊呆了……
  3. Windows电脑突然蓝屏(屏幕全蓝,没有一个字)解决方法!
  4. showToast_fail parameter error_ parameter.title should be String instead of undefined
  5. 港大CS笔试面试分享
  6. 客户地图制作软件,制作商圈图用什么软件
  7. 2016 Google I/O新知介绍之 Daydream VR platform
  8. 心灵指南 刘墉 第一辑 超越自己 笔记
  9. ajax返回的为什么是,为什么WordPress的AJAX请求返回整个HTML页面,而不是JSON结果?(Why Wordp...
  10. (C#)Windows Shell 外壳编程系列1 - 基础,浏览一个文件夹