gflags 使用方式

设置命令行flag

一般使用flag的原因是为了能在命令行指定一个非默认值。以 foo.cc 为例,可能的用法是:

app_containing_foo --nobig_menu -languages="chinese,japanese,korean" ...

执行 ParseCommandLineFlags 会设置 FLAGS_big_menu = false , FLAGS_languages = "chinese,japanese,korean" 。

注意这种在名字前面加“no”的设置布尔flag为false的语法。

设置“languages”flag的方法有:

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"

布尔flag稍有不同:

app_containing_foo --big_menu
app_containing_foo --nobig_menu
app_containing_foo --big_menu=true
app_containing_foo --big_menu=false

还包括以上这些的单短线的变种

建议只使用一种形式:非布尔flag, --variable=value ;布尔flag, --variable/--novariable 。保持一致性有一定的好处。

在命令行使用未定义的flag会在执行时失败。如果需要允许未定义的flag,可以使用 --undefok 来去掉报错。

和 getopt() 一样, -- 可以用于结束flag。

重复指定flag使用最后的一个。

不支持单字母的形式的flag,也不支持单短线后的flag合并,像 ls -la 那样。

posted @   鸭子船长  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2017-10-11 ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析
2017-10-11 std::nothrow
点击右上角即可分享
微信分享提示