google gflags介绍

它可以直接从命令行中提取预定义好的参数。

宏定义

例子:

// test.cpp
#include <gflags/glags.h>
// 三个参数:1.定义的参数名;2.默认值;3.提示语句
DEFINE_string(query, "", "The keyword you need to query");
DEFINE_uint64(search_type, 0, "It is the businessType. You can see the details information in ****.");

支持的类型:

  • 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

命令行输入

// 在编译好test之后,执行test
test --query=test --search_type=1
  • 其他输入方式
app_containing_foo --languages="chinese,japanese,korean"
app_containing_foo -languages="chinese,japanese,korean"
app_containing_foo --languages "chinese,japanese,korean"
app_containing_foo -languages "chinese,japanese,korean"

初始化使用

  • 初始化
// test.cpp
int main(int argc, char **argv)google::ParseCommandLineFlags(&argc, &argv, false);// 然后就可以用各种参数了,FLAGS_query和FLAGS_search_type即表示你之前输入的值

argcargv就是main的入口参数。

特殊flag

  • –help:显示所有文件的所有flag,按文件、名称排序,显示flag名、默认值和帮助
  • –helpfull :和 --help 相同,显示全部flag
  • –helpshort:只显示执行文件中包含的flag,通常是 main() 所在文件

参考

  • gFlags 使用指南
  • 官方文档
  • GFlags使用文档

google gflags命令行参数处理(c++)相关推荐

  1. Chrome和Firefox的命令行参数

    使用Selenium由于是基于浏览器的操作,所以了解浏览器的命令行参数( Command line switches)非常重要,例如:在使用Selenium的时候,设置Chrome的调试端口.用户数据 ...

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

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

  3. 如何在Java中解析命令行参数?

    在Java中解析命令行参数的好方法是什么? #1楼 我不建议使用Apache Common CLI库,因为它是非线程安全的. 它使用带有静态变量和方法的有状态类来进行内部工作(例如OptionBuil ...

  4. 如何将命令行参数传递给Node.js程序?

    我有一个用Node.js编写的Web服务器,我想使用一个特定的文件夹启动. 我不确定如何在JavaScript中访问参数. 我正在像这样运行节点: $ node server.js folder 这是 ...

  5. java命令行参数工具_Java方法中的参数太多,第8部分:工具

    java命令行参数工具 在我的系列文章的前七篇文章中,有关处理Java方法中期望的参数过多的内容集中在减少方法或构造函数期望的参数数量的替代方法上. 在本系列的第八篇文章中,我将介绍一些工具,这些工具 ...

  6. 命令行参数怎么输入_太好用了!谷歌开源的命令行接口工具fire

    大家使用最多的命令行工具应该是pip了,pip提供了很多的命令行参数和选项,我们在终端使用pip install --help命令可以查看install子命令的帮助文档. 可以看到,除了最常用的pip ...

  7. Android配置模拟器参数,夜神模拟器支持命令行参数列表

    Nox目前支持的命令行参数(支持3.0版本模拟器以及更高版本模拟器) Nox.exe -clone:                                                   ...

  8. 在C#中解析命令行参数的最佳方法? [关闭]

    构建带有参数的控制台应用程序时,可以使用传递给Main(string[] args) . 过去,我只是索引/循环该数组,并做了一些正则表达式来提取值. 但是,当命令变得更复杂时,解析可能会变得很丑陋. ...

  9. swift 脚本_Swift脚本和命令行参数

    swift 脚本 In this tutorial, we'll discuss how to create Scripts in Swift. Yes, Swift is a scripting l ...

最新文章

  1. IOS5 ARC unsafe_unretained等说明
  2. 【网页前端设计Front end】HTML语言基础.上(看不懂你来打我)
  3. CentOS 7 下安装 mysql ,以及用到的命令
  4. MYSQL学习01--MySQL基础知识
  5. python如何开启多线程_Python如何创建多线程
  6. qt中下拉列表使用函数setCurrentText()设置当前显示值不能设置成功
  7. JAV虚拟机下载 JDK1.6下载大全
  8. 如何从计算机中删除 Exchange Server 2003
  9. 项目进度计划表_18份施工进度计划图 | 开工必备,都给你整理好了
  10. 把Caffe的模型转换为Pytorch模型
  11. 就知道你喜欢中文版:Spread .NET 15.2 FOR WPF
  12. java xlsm_poi读取excel(xls和xlsx,xlsm)给定单元格内容
  13. C++面向对象(1):防卫式声明
  14. Joplin插件推荐-持续更新
  15. 理解为什么女孩子都希望进国企了
  16. 0005 键盘打字如何练成像黑客一样的飞速
  17. JAYのpython学习笔记——数据结构之列表
  18. PHP学习笔记:环境变量
  19. JS-一张纸折叠多少次可达到珠穆朗玛峰的高度
  20. Ubuntu操作-07 GNOME-TWEAKS

热门文章

  1. Cobalt Strike Veil 免杀过杀软(子篇10)
  2. 云原生--k8s基础管理命令(二)
  3. 用Django实现网页Url使用汉语拼音PinYin作为SEO优化的实现方法
  4. 随机变量的相互独立性
  5. 【pandas】教程:1-处理什么样的数据
  6. 做软件测试工程师真的很容易吗
  7. GitHub 经典项目归集
  8. 我好像解决部分猫盘刷群晖后掉IP的问题了
  9. Centos7.6 2T以上硬盘GPT分区工具使用挂载教程
  10. RLHF:基于人类反馈(Human Feedback)对语言模型进行强化学习【Reinforcement Learning from Human Feedback】