配置环境:
主机i7-11700 + RTX3070
Apollo使用gitee上最新版本的源码
(之前使用的是apollo6.0,配置调试好像和教程差别比较大)
docker安装apollo
docker,gpu驱动的这些基础安装都可以直接参考我之前的博客
-
在自己的目录下载源码
git clone https://gitee.com/ApolloAuto/apollo.git
克隆正常的话就应该是 -
拉取镜像,构建docker 容器
使用自带脚本
bash docker/scripts/dev_start.sh
第一次拉取需要一点时间,具体看网速决定
构建之后就不要用这个命令了,不然会删除之前的容器,重新构建
-
进入docker
也是使用自带脚本
bash docker/scripts/dev_into.sh
-
编译带有调试信息的版本 在docker的/apollo目录下
bash apollo.sh build_dbg
第一次编译的话需要下载一些库、依赖环境,万一网络错误的话重试几次就好了(我没遇到但我同学遇到了),然后编译的过程是比较吃多核性能的,我11700搞完大概用了15min左右,笔记本的话建议调好风扇噪音以防"整个实验室侧目"
以及,带调试信息的话,编译文件要60G左右空间,提取调整好硬盘容量
-
enjoy
VSCode调试
-
在vscode中下载插件Remote-Containers\
-
在普通终端中,start一下apollo的镜像
-
vscode中 Attach to running container
-
调整配置文件
修改为
<span style="background-color:#f8f8f8">{ "extensions": [ "BazelBuild.vscode-bazel", "DamianKoper.gdb-debug", "eamodio.gitlens", "GitHub.vscode-pull-request-github", "Gruntfuggly.todo-tree", "jeff-hykin.better-cpp-syntax", "mhutchie.git-graph", "MS-CEINTL.vscode-language-pack-zh-hans", "ms-vscode-remote.remote-containers", "ms-vscode-remote.remote-ssh", "ms-vscode-remote.remote-ssh-edit", "ms-vscode-remote.remote-wsl", "ms-vscode.cmake-tools", "ms-vscode.cpptools", "ms-vscode.cpptools-extension-pack", "ms-vscode.cpptools-themes", "ms-vsliveshare.vsliveshare", "twxs.cmake" ], "workspaceFolder": "/apollo", "remoteUser": "fc", "remoteEnv": { "HISTFILE": "/apollo/.dev_bash_hist" } }</span>
主要的点有两个
-
remoteUser改成自己的
-
"workspaceFolder": "/apollo"
-
-
配置vscode的调试文件 点开vscode左侧的“运行与调试”,选择“生成配置文件launch.json”
修改为
<span style="background-color:#f8f8f8">{ <span style="color:#aa5500">// 使用 IntelliSense 了解相关属性。</span> <span style="color:#aa5500">// 悬停以查看现有属性的描述。</span> <span style="color:#aa5500">// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387</span> <span style="color:#000000">"version"</span>: <span style="color:#aa1111">"0.2.0"</span>, <span style="color:#000000">"configurations"</span>: [ { <span style="color:#000000">"name"</span>: <span style="color:#aa1111">"g++ - 生成和调试活动文件"</span>, <span style="color:#000000">"type"</span>: <span style="color:#aa1111">"cppdbg"</span>, <span style="color:#000000">"request"</span>: <span style="color:#aa1111">"launch"</span>, <span style="color:#000000">"program"</span>: <span style="color:#aa1111">"/apollo/bin/cyber/mainboard"</span>, <span style="color:#000000">"args"</span>: [<span style="color:#aa1111">"-d"</span>,<span style="color:#aa1111">"/apollo/modules/perception/production/dag/dag_streaming_perception.dag"</span>], <span style="color:#000000">"stopAtEntry"</span>: <span style="color:#221199">false</span>, <span style="color:#000000">"cwd"</span>: <span style="color:#aa1111">"/apollo"</span>, <span style="color:#000000">"environment"</span>: [], <span style="color:#000000">"externalConsole"</span>: <span style="color:#221199">false</span>, <span style="color:#000000">"MIMode"</span>: <span style="color:#aa1111">"gdb"</span>, <span style="color:#000000">"setupCommands"</span>: [ { <span style="color:#000000">"description"</span>: <span style="color:#aa1111">"为 gdb 启用整齐打印"</span>, <span style="color:#000000">"text"</span>: <span style="color:#aa1111">"-enable-pretty-printing"</span>, <span style="color:#000000">"ignoreFailures"</span>: <span style="color:#221199">true</span> } ], <span style="color:#aa5500">// "preLaunchTask": "C/C++: g++ 生成活动文件",</span> <span style="color:#000000">"miDebuggerPath"</span>: <span style="color:#aa1111">"/usr/bin/gdb"</span> } ] }</span>
这里有三个要注意的点
-
"program" 可执行文件的路径,要修改为 "/apollo/bin/cyber/mainboard",和阿波罗开发者说的有些不同,mainboard这个可执行文件并不在bazel-bin中了,或许也可以改为/apollo/cyber-bin/cyber/mainboard/mainboard
-
"args" :设置可执行文件的输入参数 "-d"为mainboard的参数,表明输入dag文件式,"/apollo/modules/perception/production/dag/dag_streaming_perception.dag为需要调试的dag文件,这个文件可以根据你自己的需要更改。
-
"miDebuggerPath": "/usr/bin/gdb"
设置gdb调试器的路径
如果在/usr/bin没有gdb可执行文件的话,安装一下
<span style="background-color:#f8f8f8">sudo apt-get update sudo apt-get install gdb</span>
-
-
顺利的话就可以按F5愉快的进行调试了
可能会报车型错误之类的,这主要是因为没有在Dreamview选车型和地图啥的
之后自己调试的时候,就按官网下载数据文件,选择地图就好了