百度apollo - Apollo代码解析:3. 命令行参数传递google gflags

本文详细介绍了如何在Apollo项目中使用google的gflags库进行命令行参数传递。从安装gflags、通过cmake和Bazel构建,到在C++代码中定义、访问和验证命令行参数,以及自定义帮助和版本信息,文章提供了完整的步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

  • 在百度Apollo中gflag被广泛的应用在各种全局变量中,例如节点名,变量名,各种状态标志中。
  • gflags 是google开源的一套命令行参数解析工具,比 getopt 功能更加强大,使用起来更加方便。
  • 什么是 命令行参数解析工具 呢? 这里拿python做例子,例如:python test.py cmd1 cmd2
    其中cmd1cmd2 就是命令行参数,gflags就是用来解析cmd1 cmd2 到程序中的。
  • ps: 在cpp中命令行参数就是字符串

1. 安装 gflags

下载地址:git clone https://github.com/gflags/gflags.git

build和安装教程在INSTALL文件中有, 该教程支持pkg-config, CMake, 以及 Bazel.

1.1 cmake

如果gflags不是安装在默认路径下,则环境变量gflags_DIR 需要是 <prefix>/lib/cmake/gflags 该文件夹下需要是有 gflags-config.cmake 的文件。

如果gflags安装在默认路径下CMake 可以通过 find_package(gflags REQUIRED)

或者添加单线程静态库:
find_package(gflags COMPONENTS nothreads_static)
自动找到 gflags 。

添加dependency和execute
add_executable(foo main.cc)
target_link_libraries(foo gflags)

1.2 Bazel

WORKSPACE中添加以下语句

git_repository(
    name   = "com_github_gflags_gflags",
    commit = "<INSERT COMMIT SHA HERE>",
    remote = "https://github.com/gflags/gflags.git"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值