gflags使用示例
cpp文件
// g++ gflagstest.cpp -o gtest -lgflags -lpthread
#include <gflags/gflags.h>
DEFINE_string(config_file, "./config/default.yaml", "config file path");
int main(int argc, char **argv) {
google::ParseCommandLineFlags(&argc, &argv, true);
printf("%s\n", FLAGS_config_file.c_str());
for (size_t i = 0; i < argc; i++)
{
printf("%s\n", argv[i]);
}
return 0;
}
编译:
g++ gflagstest.cpp -o gtest -lgflags # -l 链接库进行编译,否则会出错
运行:
./gtest "11111" -config_file="asdhajcsd" "wwwww"
其中-config_file="asdhajcsd"
为标识和参数,./gtest "11111" "wwwww"
为命令行参数
google::ParseCommandLineFlags(&argc, &argv, true)
时输出:
asdhajcsd
./gtest
11111
wwwww
可见,去掉了标识和参数-config_file="asdhajcsd"
google::ParseCommandLineFlags(&argc, &argv, false)
时输出:
asdhajcsd
./gtest
-config_file=asdhajcsd
11111
wwwww
保留标识和参数-config_file="asdhajcsd"
,并置前
两种错误:
运行
./gtest "11111" -config_file1="asdhajcsd" "wwwww"
输出
ERROR: unknown command line flag 'config_file1'
运行
./gtest "11111" -config_file1="asdhajcsd" "wwwww" -arg1="22222"
输出
ERROR: unknown command line flag 'arg1'
ERROR: unknown command line flag 'config_file1'