解决WSL2占用内存过大的问题
- 按下Windows + R 键,输入 %UserProfile% 并运行进入用户文件夹
- 新建文件 .wslconfig ,然后使用记事本编辑
- 填入以下内容并保存, memory为wsl2分配的内存上限,可根据自身电脑配置设置
[wsl2]
memory=2GB # Limits VM memory in WSL 2GB, also can be set to other values
swap=0
localhostForwarding=true
processors=2 # Makes the WSL 2 VM use two virtual processors, also can be set to other values
创建Apollo container
cd apollo
:bash docker/scripts/dev_start.sh
进入container
sudo bash docker/scripts/dev_into.sh
编译Apollo
进入container之后,编译Apollo,分为两种情况有GPU和无GPU:
1)有GPU
bash apollo.sh build_opt_gpu
2)无GPU
sudo bash apollo.sh build_cpu
apollo编译遇到的问题
Apollo依赖protobuf库,而protobuf库依赖zlib库,而protobuf库安装时提供的zlib下载链接是上面这个。
解决方法是替换新的可用链接,具体就是修改Apollo项目文件夹中的.cache/bazel/540135163923dd7d5820f3ee4b306b32/external/rules_proto/proto/private文件夹里的dependencies.bzl文件,将"zlib"的部分改成以下即可。
"zlib": {
"sha256": "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff",
"build_file": "@com_google_protobuf//:third_party/zlib.BUILD",
"strip_prefix": "zlib-1.2.11",
"urls": [
"https://github.com/madler/zlib/archive/v1.2.11.tar.gz",
],
}
VSCode调试
1. vscode下安装c++和docker相关的插件
2. 选择Containers
3. 配置launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "/apollo/bazel-bin/cyber/mainboard",
"args": ["-d","/apollo/modules/control/dag/control.dag"],
"stopAtEntry": false,
"cwd": "/apollo",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
参数解释:
"program":是可执行文件的的路径,在这个调试配置中,调用的是mainboard可执行文件,该可执行程序可以加载相关模块的dag文件,完成模块的启动和运行。
"args" :设置可执行文件的输入参数 "-d"为mainboard的参数,表明输入dag文件,
"/apollo/modules/perception/production/dag/dag_streaming_perception.dag为需要调试的dag文件,这个文件可以根据你自己的需要更改。
效果: