
目录
引言
安装
如何用 gflags 库写代码
如何用命令行使用 gflags 库
gflags 库的其他命令行参数
引言
 
          gflags 是 Google  
 开发的一个开源库,用于  
 C++  
 应用程序中命令行参数的声明、定义  
 
 
 和解析。 
 gflags  
 库提供了一种简单的方式来添加、解析和文档化命令行标志( 
 flags 
 ),使得程序可以根据不同的运行时配置进行调整。 
 
安装
sudo apt-get install libgflags-dev如何用 gflags 库写代码
必须包含头文件
#include <gflags/gflags.h> 
         利用 gflag  
 提供的 
 宏 
 定义来定义参数。该宏的  
 3  
 个参数分别为 
 命令行参数名 
 , 
 参数默  
 
 
 认值 
 , 
 参数的帮助信息 
 。 
 
/*
DEFINE_bool
DEFINE_int32
DEFINE_int64
DEFINE_uint64
DEFINE_double
DEFINE_string
*/
//示例
DEFINE_bool(reuse_addr, true, "是否开始网络地址重用选项");通过下面的函数解析命令行参数
google::ParseCommandLineFlags(&argc, &argv, true);
在使用宏函数定义变量时,要加 FLAGS_ 前缀
代码示例
//如何使用 gflags 库
#include <gflags/gflags.h>
#include <iostream>
//用宏函数定义变量,第一个参数相当于变量名,第二个参数相当于变量的默认值,第三个参数是变量的注释
DEFINE_bool(reuse_addr, true, "是否开始网络地址重用选项");
DEFINE_int32(log_level, 1, "日志等级:1-DEBUG, 2-WARN, 3-ERROR");
DEFINE_string(log_file, "stdout", "日志输出位置设置,默认为标准输出");
int main(int argc, char* argv[])
{
    //该函数解析命令行或配置文件中的参数
    google::ParseCommandLineFlags(&argc, &argv, true);
    //在使用变量时,要加 FLAGS_ 前缀
    std::cout << FLAGS_reuse_addr << std::endl;
    std::cout << FLAGS_log_level << std::endl;
    std::cout << FLAGS_log_file << std::endl;
    return 0;
}
如何用命令行使用 gflags 库
[可执行程序] --[变量名]=[值] --[变量名]=[值] --[变量名]=[值] ...示例
./test --reuse_addr=flase --log_level=3 --log_file=test.log可以把命令行参数写到配置文件里
格式如下
--[变量名]=[值]
--[变量名]=[值]
--[变量名]=[值]
...这样,可执行程序后面不用跟一堆命令行参数了,直接指定想要读取的配置文件即可
[可执行程序] --flagfile=[配置文件路径]示例
./test --flagfile=/home/xiao/xiao/gflags-test/test1.cofn gflags 库的其他命令行参数
[可执行程序] [参数] 
  1. --help #  
  显示文件中所有标识的帮助信息  
 
 
  
  2. --helpfull #  
  和 
  -help  
  一样 
  ,  
  帮助信息更全面一些  
 
 
  
  3. --helpshort #  
  只显示当前执行文件里的标志  
 
 
  
  4. --helpxml #  
  以  
  xml  
  方式打印,方便处理  
 
 
  
  5. --version #  
  打印版本信息,由  
  google::SetVersionString() 
  设定 
 
 



















