本实验采用源码构建方式实现
实验环境:
- Ubuntu 20.04
- Vscode
- 已将安装好相应的工具并经过测试,具体见【这篇文章】
步骤一,下载apollo最新源码
# 国内
git clone https://gitee.com/ApolloAuto/apollo.git# 国外
git clone https://github.com/ApolloAuto/apollo.git# github项目地址,可以下载ZIP文件解压到本地
https://github.com/ApolloAuto/apollo
步骤二,Vscode连接Docker
- 打开Vscode安装必要扩展
- 启动容器
### 新方法,进入到 Apollo 源码根目录 ame start
- 打开vscode,第二步启动容器也可以在vscode中点击相应镜像启动
- 进入到新界后,在文件里面选择打开文件夹,选择下图内容,进入到工作空间中
- 在容器中启动扩展
步骤三,编写自己的文件
-
在cyber目录下新建目录,层级如下
-
编写helloworld.cc文件
#include "cyber/cyber.h"int main(int argc, char *argv[]) {// apollo::cyber::Init(argv[0]);AINFO << "hello Apollo";AWARN << "hello Apollo";AERROR << "hello Apollo";AFATAL << "hello Apollo";return 0; }
- 编写BUILD文件
load("//tools:cpplint.bzl", "cpplint") load("//tools:apollo_package.bzl", "apollo_cc_binary", "apollo_package") package(default_visibility = ["//visibility:public"])apollo_cc_binary(name = "hello",srcs = ["helloworld.cc"],deps = ["//cyber"], )apollo_package()cpplint()
步骤四,编译
-
在Vscode,打开终端,使用su 【用户名】指令切换用户,如果起初编译不成功
-
切换成功后,输入buildtool build -p cyber/src_cc/...,编译该目录下的文件
-
编译成功后执行,输入 bazel-bin/cyber/src_cc/hello,运行得到下过如下