cpp集成gflags
简介
gflags 是 Google 开源的命令行参数解析库,主要用于 C++项目中提供灵活、强大的命令行参数定义与解析功能
gflags 通过宏定义全局变量并自动处理命令行参数传参,例如DEFINE_int32(port, 8080, "Port to listen on");
更多用法:How To Use gflags (formerly Google Commandline Flags)
简单集成
项目结构:
.
├── build
├── CMakeLists.txt
├── main.cpp
└── vendor
输出
git clone https://github.com/gflags/gflags.git vendor/gflags
CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.10)
project(test)
set(CMAKE_CXX_STANDARD 17)
add_subdirectory(vendor/gflags)
add_executable(test main.cpp)
target_link_libraries(test gflags)
main.cpp 文件:
#include <iostream>
#include "gflags/gflags.h"
DEFINE_bool(debug, false, "Enable debug mode");
DEFINE_int32(port, 8080, "Listening port");
int main(int argc, char** argv) {
gflags::SetUsageMessage("Usage: ./test [options]");
gflags::ParseCommandLineFlags(&argc, &argv, true);
std::cout << "Debug mode: " << (FLAGS_debug ? "ON" : "OFF") << std::endl;
std::cout << "Listening on port: " << FLAGS_port << std::endl;
return 0;
}
运行
无参数运行:
./test
Debug mode: OFF
Listening on port: 8080
带参数运行:
./test --port=10086
Debug mode: OFF
Listening on port: 10086
查看帮助:
./test --help
test: Usage: ./test [options]
Flags from /home/vv/tmp/cpp_gflags/main.cpp:
-debug (Enable debug mode) type: bool default: false
-port (Listening port) type: int32 default: 8080
comment:
- Valine
- LiveRe
- ChangYan