一、介绍
gflags是google的一个开源的处理命令行参数的库,使用c++开发。
ubuntu下使用命令安装:
sudo apt-get install libgflags*
二、关键点
1、DEFINE宏有三个参数:标志的名称、默认值以及描述其用法的字符串。
2、定义的flag可以像正常的变量一样使用,只需在前面加上 FLAGS_前缀。
3、可以在任何源文件中定义flag,但是每个只能定义一次。如果需要在多处使用,那么在一个文件中 DEFINE ,在其他文件中 DECLARE 。比较好的方法是在 .cc 文件中 DEFINE ,在 .h 文件中 DECLARE ,这样包含头文件即可使用flag了。
三、例子
#include <gflags/gflags.h>
#include <iostream>
#ifndef GFLAGS_GFLAGS_H_
namespace gflags = google;
#endif // GFLAGS_GFLAGS_H_
DEFINE_bool(quiet, true, "打印详细信息");
DEFINE_string(infile, "", "输入文件");
int main(int argc, char** argv){
gflags::ParseCommandLineFlags(&argc, &argv, true);
if (FLAGS_quiet){
std::cout << "hello world" << std::endl;
std::cout << "fileName = " << FLAGS_infile << std::endl;;
}
}
编译时,需要链接gflags: -lgflags
g++ -o flagsV0 flagsV0.cpp -lgflags
四、参考文献
https://blog.csdn.net/u010168781/article/details/93759550
https://www.jianshu.com/p/2179938a818d