• Win10 WSL2 ubuntu20.04编译apollo


    解决WSL2占用内存过大的问题

    1. 按下Windows R 键,输入 %UserProfile% 并运行进入用户文件夹
    2. 新建文件 .wslconfig ,然后使用记事本编辑
    3. 填入以下内容并保存, memory为wsl2分配的内存上限,可根据自身电脑配置设置
    1. [wsl2]
    2. memory=2GB # Limits VM memory in WSL 2GB, also can be set to other values
    3. swap=0
    4. localhostForwarding=true
    5. processors=2 # Makes the WSL 2 VM use two virtual processors, also can be set to other values

    创建Apollo container

    1. cd apollo
    2. :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"的部分改成以下即可。

    1. "zlib": {
    2. "sha256": "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff",
    3. "build_file": "@com_google_protobuf//:third_party/zlib.BUILD",
    4. "strip_prefix": "zlib-1.2.11",
    5. "urls": [
    6. "https://github.com/madler/zlib/archive/v1.2.11.tar.gz",
    7. ],
    8. }

    VSCode调试

    1. vscode下安装c++和docker相关的插件

    2.  选择Containers

     3. 配置launch.json

    1. {
    2. // 使用 IntelliSense 了解相关属性。
    3. // 悬停以查看现有属性的描述。
    4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    5. "version": "0.2.0",
    6. "configurations": [
    7. {
    8. "name": "(gdb) 启动",
    9. "type": "cppdbg",
    10. "request": "launch",
    11. "program": "/apollo/bazel-bin/cyber/mainboard",
    12. "args": ["-d","/apollo/modules/control/dag/control.dag"],
    13. "stopAtEntry": false,
    14. "cwd": "/apollo",
    15. "environment": [],
    16. "externalConsole": false,
    17. "MIMode": "gdb",
    18. "setupCommands": [
    19. {
    20. "description": "为 gdb 启用整齐打印",
    21. "text": "-enable-pretty-printing",
    22. "ignoreFailures": true
    23. },
    24. {
    25. "description": "将反汇编风格设置为 Intel",
    26. "text": "-gdb-set disassembly-flavor intel",
    27. "ignoreFailures": true
    28. }
    29. ]
    30. }
    31. ]
    32. }

    参数解释:

    "program":是可执行文件的的路径,在这个调试配置中,调用的是mainboard可执行文件,该可执行程序可以加载相关模块的dag文件,完成模块的启动和运行。

    "args" :设置可执行文件的输入参数 "-d"为mainboard的参数,表明输入dag文件,

    "/apollo/modules/perception/production/dag/dag_streaming_perception.dag为需要调试的dag文件,这个文件可以根据你自己的需要更改。

    效果: 

  • 相关阅读:
    字符类型-python(day5)
    如何保证MySQL和Redis数据一致性?
    人工智能、机器学习概述
    反射第一部分,获取Class对象,获取Constructor对象
    k8s 命令提示
    Direct3D纹理映射
    软考 - 05 信息物理系统(Cyber Physical Systems, CPS)
    Java版工程行业管理系统源码-专业的工程管理软件-提供一站式服务
    vue学习(基础1)
    【linux编程】linux文件IO的系统函数及其示例(open/openat/lseek/write)
  • 原文地址:https://blog.csdn.net/misterdo/article/details/126585310