Skip to content

编译 ubuntu2004

读前须知

WARNING

在一般情况下,dds 都提供了官方版本的二进制文件,你可以在 下载页面 快速获取它们

事实上,除非有特殊需要,你可能并不需要编译它

INFO

  1. dds 使用了 docker 镜像以此来提供一个统一的编译环境,因此仅需确保宿主机安装了最新版本的 docker 工具即可无障碍构建 dds 的所有内容
  2. 本文中所提及的 "编译 ubuntu2004" 指的是编译适用于 "ubuntu2004" 的产物,与宿主机无关
  3. 本文中的构建环境以 gcr.minieye.tech/huangjian/dds/build_tools/aio:20.04 为准

安装环境

dds 提供了容器化的标准构建环境,因此,在开始编译之前,请先确保你的设备安装了 docker

同时,您还需要确保您的网络通畅,bazel 构建中可能会通过网络拉取最新版依赖

拉取镜像

拉取镜像之前,需要登录仓库

sh
# 请确保你有 https://git.minieye.tech/huangjian/dds 仓库的访问权限
# 请更换 <username> 为你的 gitlab 仓库用户名
docker login -u "username" gcr.minieye.tech

登录成功以后就可以拉取镜像了

sh
docker pull gcr.minieye.tech/huangjian/dds/build_tools/aio:20.04

执行构建

构建 dds 时,需要将 aiplorer 整个仓库挂载到容器的 /workspace 路径

sh
docker run --rm -it \
    -v /path/to/aiplorer:/workspace \
    -v /path/to/preload:/preload \
    -v /path/to/output:/output \
    -e OUTPUT_DIR=/output \
    -e BAZEL_PRELOAD_ROOT=/preload \
    gcr.minieye.tech/huangjian/dds/build_tools/aio:20.04 bash ./common/dds/scripts/build.sh local

构建完成以后,产物将被释放到 OUTPUT_DIR 指定的路径中

环境变量

我们可以通过设定不同的环境变量以使 dds 执行不同的构建策略,以下是 dds 构建过程中可以设置的环境变量:

变量名说明是否必选
OUTPUT_DIR产物的输出路径
BUILD_JOBS并行编译数量,默认为 CPU 核心数量
BAZEL_PRELOAD_ROOTDDS 构建所需要的依赖项,若不指定则会在构建时自动下载
COMPILATION_MODE编译模式,默认fastbuild, 还有 opt 和 dbg 可选
TOOLCHAIN_HOME工具链路径,跨平台构建时必须指定
BAZEL_PRELOAD_ROOTbazel 依赖缓存路径,优先从本地获取依赖,若不存在则自动从云端下载
DISABLE_REMOTE_CACHE是否禁用bazel 的远程缓存功能,TRUE 表示禁用
REMOTE_CACHE_URLbazel remote cache 的地址,若不指定会使用默认值

智能汽车赋能者