【Apollo】编译 Apollo 源码

https://github.com/ApolloAuto/apollo/blob/master/docs/01_Installation%20Instructions/apollo_build_and_test_explained.md

  • 查看apollo.sh 的用法
./apollo.sh --help

请添加图片描述

  • 可以编译整个模块,也可以单独编译某一个子模块./modules

    为简单起见,Apollo 6.0 及以后引入了 bash apollo.sh build [module] 概念,以取代之前 Apollo 版本中的 build_cyber、build_planning 等概念。

# 普通编译整个模块
bash apollo.sh build

# 仅仅普通编译构建整个规划模块(modules/planning 目录下的所有目标):
bash apollo.sh build planning
apollo.sh build编译类型说明
bash apollo.sh build编译整个apollo项目
bash apollo.sh build [modules]只编译某一个模块,如bash apollo.sh build planning
build_dbg/build_optdebug或者优化模式构建
build_cpu/build_gpu以cpu或者gpu模式联编,bazel build --config=cpu,bazel build --config=gpu
build_opt_gpuopt与gpu 的联编,等同于 bazel build --config=opt --config=gpu
build_nvidia以 GPU 模式运行 NVIDIA GPU 目标机的联编,bazel build --config=gpu --config=nvidia
  • 默认情况下,Apollo 使用 fastbuild 编译模式。因此,当键入 bash apollo.sh build planning 时,实际等效是在指示 Bazel 运行:
bazel build [other options] -c fastbuild //modules/planning/...

当键入 bash apollo.sh build_dbg planning 时,实际等效是在指示 Bazel 运行:

bazel build [other options] --config=dbg //modules/planning/...

请注意,--config=dbg等价于 -c dbg

# 等价
bash apollo.sh build_opt cyber
bazel build [other options] -c opt //cyber/...
  • opt与gpu 的联编
bazel build --config=cpu
bazel build --config=gpu

有三种 USE_GPU: USE_GPU_HOST、USE_GPU_TARGET 和 USE_GPU。

  • USE_GPU_HOST 是一个环境变量,由 docker/scripts/dev_start.sh 决定并传递给 Apollo Docker 容器,用于指示主机(Docker 正在运行的地方)是否支持 GPU。
  • USE_GPU_TARGET 是一个环境变量,由 Docker 容器内的 scripts/apollo.bashrc 决定,用于指示容器是否支持 GPU。
  • USE_GPU 是一个变量,用于指示是执行 CPU 构建还是 GPU 构建。
    当你键入 bash apollo.sh build --config=cpu 或 apollo.sh build --config=gpu 时,构建脚本将检查 Docker 容器的 GPU 能力,并确定你指定的构建能否成功。

如果没有指定是执行 CPU 还是 GPU 构建,构建脚本会根据 Docker 环境的 GPU 能力自动决定。

在支持 GPU 的 Apollo 容器中运行 CPU 构建是没问题的,而在仅支持 CPU 的容器中运行 GPU 构建则会失败。

根据设计,–config=cpu 和 --config=gpu 是相互排斥的。运行 apollo.sh 联编时,最多只能指定其中一个。

  • 可以运行以下测试来检测自己的GPU是否支持

由于 bazel test 继承了 bazel build 的所有选项,因此上述讨论也适用于 apollo.sh test。

# 在 `cyber` 目录下运行单元测试
bash apollo.sh test cyber
bazel test [--config=cpu|--config=gpu] //cyber/...

# 在 CPU 模式下运行所有单元测试
bash apollo.sh test --config=cpu
bazel test --config=cpu //...

 在 GPU 模式下运行规划模块的单元测试
bash apollo.sh test --config=gpu planning
bazel test --config=gpu //modules/planning/...

请添加图片描述

  • 这里我选择了全部普通编译bash apollo.sh build,编译成功以后,将显示如下字样
(02:26:51) INFO: Elapsed time: 849.925s, Critical Path: 164.47s
(02:26:52) INFO: 26743 processes: 18504 internal, 8239 local.
(02:26:52) INFO: Build completed successfully, 26743 total actions
+ set +x
==============================================
[ OK ] Done building apollo. Enjoy!
==============================================
  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
编译和搭建Apollo配置中心的源码,您可以按照以下步骤进行: 1. 下载源码:访问Apollo的官方GitHub仓库(https://github.com/ctripcorp/apollo),找到并下载源码包。 2. 配置数据库:Apollo使用MySQL作为配置存储的数据库,您需要安装并配置MySQL数据库,并创建一个用于存储Apollo配置的数据库。 3. 导入数据库脚本:在Apollo源码的scripts目录中,有一个createTable.sql文件,您需要先创建该数据库中的表结构,可以使用命令行或可视化工具导入该脚本。 4. 修改数据库连接配置:在Apollo源码apollo-configservice子项目中,找到src/main/resources/application-github.properties文件,将文件中的数据库连接配置修改为您自己的配置。 5. 编译源码:进入到Apollo源码的根目录,执行mvn clean package命令进行编译,这将生成一个target目录,其中包含了编译后的可执行文件。 6. 部署和运行:将编译后的target目录中的可执行文件部署到您的服务器上,执行启动脚本即可启动Apollo配置中心。您可以根据需要,修改可执行文件中的配置参数来适应您的环境需求。 在搭建Apollo配置中心之前,您还需要确保服务器上已经安装了Java环境和Maven构建工具。此外,Apollo还涉及到其他组件和依赖,需要您按照文档中的说明进行安装和配置。 运行成功后,您可以通过访问配置中心的页面,进行应用创建、配置管理和发布等操作。同时,Apollo还提供了丰富的扩展接口和功能,可以满足不同场景的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SensizliKLoU

感谢您的慷慨支持和鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值