google gflag简单的使用方法

本文介绍如何使用Google开源的gflags库简化程序中配置参数的管理与引用过程,通过定义一次参数选项,实现各模块间的直接引用,提高代码复用性和维护效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

google开源的gflags是很好的可配置参数选项,不但可以代替传统的getopt ,个人觉得最好的地方在于定义一次参数选项,其它需要使用gflags的程序模块可以直接引用,

而引用的方式只需要声明一下对应的参数即可

简单的例子如下,其中标红的就是程序使用某个参数变量的引用方法


(a.cpp)

#include <gflags/gflags.h>

#include .......


DEFINE_string(log_path, "../logs/","log path");


int main(int argc, char **argv) {


        ::google::ParseCommandLineFlags(&argc, &argv, true);
   
        std::string log_error = FLAGS_log_path + "/error.";
     
        ::google::SetLogDestination(::google::ERROR, (FLAGS_log_path + "/error.").c_str());
   
        LOG(INFO) << "start process " << argv[0];
        std::tr1::shared_ptr<CLS_PROC> pCLS_PROC(new CLS_PROC());
        bool ret_init = pCLS_PROC->_init();
        if(!ret_init){
                LOG(INFO) << "service break down!" << argv[0];
                return EXIT_FAILURE;
        }
        usleep(100);

        LOG(INFO) << "service running...";

        pCLS_PROC->_start();

        LOG(INFO) << "exit process" << argv[0];
        return EXIT_SUCCESS;
}


(b.cpp)

这里b.cpp也需要使用log_path这个变量,所以只需要一个声明即可


#include <gflags/gflags.h>
#include .....


DECLARE_string(log_path);



/*

这里可以直接像a.cpp中一样用FLAGS_log_path来引用这个参数

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值