#include <gflags/gflags.h> #include <iostream> // 声明全局flag DEFINE_bool(my_bool, false, "bool flag"); DEFINE_int32(my_int32, 1, "int32 flag"); DEFINE_int64(my_int64, 2, "int64 flag"); DEFINE_uint64(my_uint64, 3, "uint64 flag"); DEFINE_double(my_double, 4.0, "double flag"); DEFINE_string(my_string, "5", "string flag"); int main(int argc, char* argv[]) { // 设置版本号 可通过./argv[0] --version查看 google::SetVersionString("1.3.1"); // 解析命令行参数 // 如果参数3是true的话 该函数会将选项及其对应参数删除 // 否则选项及其参数将被保留, 并且不带选项的参数将被重新排列到末尾 // 比如 ./foo a b --my_bool c d // 如果参数3为true, 该函数执行之后, argv为./foo a b c d, argc=5 // 如果参数3为false, 该函数执行之后,argv为./foo --my_bool a b c d, argc=6 google::ParseCommandLineFlags(&argc, &argv, false); // bool值flag std::cout << FLAGS_my_bool << std::endl; // int32类型的flag std::cout << FLAGS_my_int32 << std::endl; // int64类型的flag std::cout << FLAGS_my_int64 << std::endl; // uint64类型的flag std::cout << FLAGS_my_uint64 << std::endl; // double类型的flag std::cout << FLAGS_my_double << std::endl; // string类型的flag std::cout << FLAGS_my_string << std::endl; return 0; }