Gflags的使用注意事项

今天使用了Gflags库完成对exe文件的参数配置,下面进行简要总结。

1. gflags库的配置
1)在GitHub上下载后需要使用CMake编译为库,网上教程很多在此不再叙述;
2)C++项目文件上进行配置,配置项主要为【VC++目录】下的【包含目录】和【库目录】;
3)配置项有【链接器】的【输入】下的【附加依赖项】;
2. 参数配置代码编写(见代码备注)

1)参数有效性检查

static bool ValidatePort(const char* flagname, int32_t val) {
    if (val>0&&val<32768)
    {
        return true;
    }
    return false;
}

2)参数的定义

//第一个参数就是命令行要输入的参数;第二个参数是前面参数的默认值;第三个参数是帮助说明信息(-help时显示)
DEFINE_int32(port, 6379, "what is the port ?"); //定义变量,在代码中使用变量名前多个前缀“FLAGS_”
DEFINE_string(ip, "127.0.0.1", "My ip ?");

3)主函数的编写

int main(int argc, char** argv) //函数格式,第二个参数表示传参数组的地址,第一个参数表示数组的个数,也表示可传参的数量,无需设定
{   
    gflags::ParseCommandLineFlags(&argc, &argv, true);//参数定义和注册函数均完成后,调用解析函数开始解析命令行,值得注意的就是第三个参数了。如果设置为true,gflags就会移除解析过的参数。
    bool isPort = gflags::RegisterFlagValidator(&FLAGS_port, &ValidatePort);//获取参数值后做参数检查,第二个参数为判断有效性函数结果
    int32_t Port = FLAGS_port;
    std::string Ip = FLAGS_ip;
  
    std::cout << Port << std::endl;
    std::cout << Ip << std::endl;
    system("pause");
    gflags::ShutDownCommandLineFlags();
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值