Skip to content

gflags

cpp
#include <gflags/gflags.h>

#include <iostream>

DEFINE_bool(f, false, "help message");

int main(int argc, char **argv) {
    gflags::ParseCommandLineFlags(&argc, &argv, true);
    std::cout << FLAGS_f << std::endl;
    return 0;
}

命令行用 ./xxx -f

  • 定义 DEFINE_bool(f, false, "help message");,false 是默认值
  • 声明 DECLARE_bool(f);
  • 使用 FLAGS_f

类型

  • DEFINE_bool: 布尔类型
  • DEFINE_int32: 32-bit 整型
  • DEFINE_int64: 64-bit 整型
  • DEFINE_uint64: 无符号 64-bit 整型
  • DEFINE_double: double
  • DEFINE_string: c++ string

配置

  • 要写在 ParseCommandLineFlags 前
  • usage gflags::SetUsageMessage("usage");
  • version gflags::SetVersionString("1.0.0");
  • 验证器 gflags::RegisterFlagValidator(&FLAGS_a, [](const char*, int value) { return value < 100; });