【gflags】gflags 命令行参数配置库

gflag介绍

google开源的gflags是一套命令行参数解析工具

主要就是用来解析命令行参数,并且支持从文件或者从环境变量中读入参数,功能十分强大


gflag的使用

我们以使用为目标进行讲解,不会进行深入了解(其实并不是很难,有兴趣的朋友可以多去了解一下),仅仅让你知道gflags可以怎么快速的,直接使用起来。

至于gflags的安装也不进行过多的介绍,可以自行搜索。

  • 头文件:
#include <gflags/gflags.h>
   
   
  • 1
  • 定义参数
//定义参数 定义格式为  参数名  参数默认值  参数描述
//定义到主函数之外
DEFINE_string(ip, "127.0.0.1","ip地址"); //定义一string类型的参数
DEFINE_int32(port, 8080, "端口号");//定义一个int32 端口号
DEFINE_bool(use_tcp, true, "是否是同 TCP 协议");
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 解析命令行参数
//解析命令行参数 true 表示不保留定义的flags
gflags::ParseCommandLineFlags(&argc, &argv, true);
   
   
  • 1
  • 2
  • 打印参数
cout<<"ip: "<<FLAGS_ip<<endl;
cout<<"port: "<<FLAGS_port<<endl;
cout<<"use_tcp: "<<FLAGS_use_tcp<<endl;
   
   
  • 1
  • 2
  • 3

完整代码: 环境(Linux Centos7)

  • test.cc
//gflags 命令号参数配置
//用来管理命令行参数

//头文件
#include <gflags/gflags.h>
#include <iostream>
using namespace std;

//定义参数 定义格式为 参数名 参数默认值 参数描述
DEFINE_string(ip, “127.0.0.1”,“ip地址”); //定义一string类型的参数
DEFINE_int32(port, 8080, “端口号”);//定义一个int32 端口号
DEFINE_bool(use_tcp, true, “是否是同 TCP 协议”);

int main(int argc, char* argv[])
{
//解析命令行参数 true 表示不保留定义的flags
gflags::ParseCommandLineFlags(&argc, &argv, true);
cout<<"ip: "<<FLAGS_ip<<endl;
cout<<"port: "<<FLAGS_port<<endl;
//cout<<"use_tcp: "<<fLB::FLAGS_use_tcp<<endl;
cout<<"use_tcp: "<<FLAGS_use_tcp<<endl;

return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

  • Makefile文件
test:test.cc
    g++ $^ -o $@ -I ~/part/include -L ~/part/lib -lgflags -lpthread

.PHONY:clean
clean:
rm test

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

我的gflags放在了part文件夹下,头文件在include文件夹里面,而gflags静态库lib文件夹下,大家根据自己的路径可以修改


  • 运行方式

命令行参数的格式为 "- 参数=参数值" 或者"--参数=参数值"的形式

  • 运行结果

第一种:直接运行,结果就是默认值
这里写图片描述

第二种:可用使用 "-参数=参数值"形式,定义一个或者两个参数
这里写图片描述

第三种:也可用使用 "--参数=参数值"形式,效果一样
这里写图片描述
第四种:在给bool声明时只能是 1, 0 ,true ,false 4个值
这里写图片描述

转载于 https://blog.csdn.net/xiaozuo666/article/details/81451843
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值