apollo 工具
1.DreamView 可视化交互工具
DreamView 是一个 web 应用程序,提供如下的功能:
可视化显示当前自动驾驶车辆模块的输出信息。例如:规划路径、车辆定位、车架信息等。
为使用者提供人机交互接口以监测车辆硬件状态,对模块进行开关操作,启动自动驾驶车辆等。
提供调试工具。例如 PnC 监视器可以高效的跟踪模块输出的问题
2.aem 是一个命令行工具(全称 apollo environment manager),提供管理 Apollo 容器的能力
apollo 环境工具:aem 来启动或进入一个 Apollo 环境容器。
aem
start enter init
bootstrap 这个子命令用来启动dreamview 1.0或dreamview 2.0
3.Apollo buildtool是一个命令行工具,提供编译、测试、安装或运行 Apollo 模块等功能
只支持在 Apollo 环境容器中运行。 Apollo 环境容器已经预装了 Apollo buildtool
buildtool -v
如 build 负责编译, install 负责安装, clean 负责清理编译缓存等。
构建工具
工作空间是一个包含项目源文件和 Bazel 构建后文件输出的目录
文件类型:
WORKSPACE文件是根目录下的文件,用来描述整个工作空间的配置和依赖关系;
BUILD文件则是每个软件包或目录下的文件,用来描述构建规则和构建规则之间的依赖关系。
系统功能:
WORKSPACE文件主要负责定义整个工作空间的属性,例如依赖关系、构建工具链等;
BUILD文件主要针对单个软件包进行配置,包括源代码、测试脚本、构建规则和输出文件等。
依赖关系:
WORKSPACE文件用来声明所有工作空间中的依赖关系,也可以声明本地和远程资源的规则;
而BUILD文件则用来定义相邻软件包之间的依赖关系,例如库和二进制文件之间的依赖关系等
WORKSPACE文件告诉Bazel如何去得到其他的工程源
Bazel工程所处的位置不同,调用不同的内置rule来获得:
local_repository:本地
git_repository:git仓库
http_archive:网络下载
urls = ["file:///path/to/example_deps.tar.gz"],
外部依赖会都下载到一个名为的软连接目录。具体的内容可以通过命令行获得:
ls $(bazel info output_base)/external
Bazel 扩展程序是以 .bzl 结尾的文件。使用 load 语句从扩展程序导入符号。
load("//foo/bar:file.bzl", "some_library")
会加载 foo/bar/file.bzl 文件,并将 some_library 符号添加到环境
外部依赖项中使用 deps.bzl 来声明它自己的其他外部依赖
Rules ForeignCc
Rules for building C/C++ projects using foreign build systems (non Bazel) inside Bazel projects
https://apollo-system.bj.bcebos.com/archive
https://github.com/bazelbuild/rules_foreign_cc
https://github.com/bazelbuild/rules_foreign_cc/archive/0.8.0.tar.gz
Docker镜像
修改: apollo/docker/scripts/docker_bash.sh
GEO_REGISTRY="registry.baidubce.com"
工具需要运行在 Apollo Docker 环境内,且依赖于 Cyber RT 软件库
修改:
v1.30.0.tar.gz
v3.12.3.tar.gz
bazel_toolchains-3.2.0.tar.gz
参考
https://blog.csdn.net/csdndevpress0029/article/details/132228588
https://bazelbuild.github.io/rules_foreign_cc/0.8.0/index.html
标签:文件,依赖,Bazel,C++,bazel,构建,工具,Apollo
From: https://www.cnblogs.com/ytwang/p/18113276