Win10 WSL2 ubuntu20.04编译apollo

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

  1. 按下Windows R 键,输入 %UserProfile% 并运行进入用户文件夹
  2. 新建文件 .wslconfig ,然后使用记事本编辑
  3. 填入以下内容并保存, 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编译遇到的问题 

Win10 WSL2 ubuntu20.04编译apollo_第1张图片

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

Win10 WSL2 ubuntu20.04编译apollo_第2张图片

 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文件,这个文件可以根据你自己的需要更改。

效果: 

Win10 WSL2 ubuntu20.04编译apollo_第3张图片

你可能感兴趣的:(c++)