google gflag简单的使用方法

来源:互联网 发布:unity3d对电脑的要求 编辑:程序博客网 时间:2024/06/05 08:38

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来引用这个参数

*/

原创粉丝点击