Build Apollo中的报错解决

在Apollo文件夹中执行:

./docker/scripts/dev_start.sh

若出现报错:
在这里插入图片描述
经过查找,应该是网络问题,重新执行一遍或者重新联网即可。但我重新执行后还是报错,于是我重启电脑后重新运行,运行成功。
在这里插入图片描述若出现以下报错:
在这里插入图片描述
则在命令前加上sudo

sudo ./docker/scripts/dev_start.sh

进入容器:

./docker/scripts/dev_into.sh

若出现报错:

Error response from daemon: Container 0ab947bcd84aa90d9e3328274ca2a40697a8e3eb84bba59c716a41bacc03112d is not running

在这里插入图片描述则查看container:

docker ps -a

在这里插入图片描述找到需要的容器名称(此处为apollo_dev_purples)对应的id(此处为c5f27ac28e08)
启动该容器:

docker start c5f27ac28e08

在这里插入图片描述若出现报错:

Error response from daemon: No such container: apollo_dev_purples

再执行一遍:

sudo ./docker/scripts/dev_start.sh

若还是不行,可能是没有设置docker不用sudo执行,则设置一下(这里我设置了很多次都失败,但是安装了docker desktop后设置成功了)设置方法见:
创建docker组:

sudo groupadd docker

将用户添加到docker组中:

sudo usermod -aG docker $USER

注销并重新登录,以便重新评估你的组成员身份:

newgrp docker

验证是否可以在不使用sudo时运行docker:

docker run hello-world

若设置完成,将显示:
在这里插入图片描述然后再次

sudo ./docker/scripts/dev_start.sh
./docker/scripts/dev_into.sh

Build Apollo :

./apollo.sh build_opt_gpu 

报错一:
在这里插入图片描述
在命令前加sudo

sudo ./apollo.sh build_opt_gpu 

报错二:
在这里插入图片描述
一般是由于网络问题,但是经常出现这种问题,因此,可直接手动下载安装包,然后移动到相应位置即可。如,上例中,
在这里插入图片描述
下载zlib-1.2.11.tar.gz失败,则直接通过链接:https://zlib.net/zlib-1.2.11.tar.gz 在浏览器中直接下载,然后在下载(未更改下载位置时默认在下载文件夹)中找到下载的文件
在这里插入图片描述
将文件移动到apollo下的.cache/distdir文件夹内。
若在apollo文件夹内没有找到.cache,在文件夹右上角,打开显示隐藏文件。
在这里插入图片描述
若文件夹上有锁,无法粘贴,则在apollo所在文件夹打开terminal,执行下方命令修改权限

sudo chmod -R 777 apollo-7.0.0   # apollo-7.0.0为apollo文件夹名称

复制粘贴完成后再次运行build命令:

./apollo.sh build_opt_gpu 

对其他package下载失败解决方法类似。
若报错为下图:
在这里插入图片描述链接https://github.com/madler/zlib/archive/v1.2.11.tar.gz无法下载,则再执行一次前面的build命令。

但是,由于zlib-1.2.11.tar.gz的下载链接已经实效,故上述例子中的链接(https://zlib.net/zlib-1.2.11.tar.gz )不可用,可用此链接下载:https://github.com/madler/zlib/archive/v1.2.11.tar.gz
且,将dependencies.bzl中下载zlib-1.2.11.tar.gz 的链接替换为上述链接:
apollo文件夹内打开terminal:

cd .cache/bazel/540135163923dd7d5820f3ee4b306b32/external/rules_proto/proto/private
sudo gedit 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",
        ],
    }

若出现报错:
在这里插入图片描述

添加以后还是报错,则打开文件grpc_python_deps.bzl
地址:
/home/zwf/apollo/.cache/bazel/540135163923dd7d5820f3ee4b306b32/external/com_github_grpc_grpc/bazel/grpc_python_deps.bzl
按照与其中对应的格式添加以下内容:

    if "rules_java" not in native.existing_rules():  
        http_archive(
            name = "rules_java",     
            sha256 = "f5a3e477e579231fca27bf202bb0e8fbe4fc6339d63b38ccb87c2760b533d1c3",  
            strip_prefix = "rules_java-981f06c3d2bd10225e85209904090eb7b5fb26bd",   
            urls = [
                "https://github.com/bazelbuild/rules_java/archive/981f06c3d2bd10225e85209904090eb7b5fb26bd.tar.gz"  
    ],
)

放网址的话容易受网络影响,则可以下载压缩包后存放在本地,然后urls中改为对应的地址,此处我放在apollo/.cache/distdir中则地址改为:file:///home/XXX/apollo/.cache/distdir/rules_java-981f06c3d2bd10225e85209904090eb7b5fb26bd.tar.gz(GitHub中给出的解决方法apollo/issues/14289
即:

http_archive(
    name = "rules_java",
    sha256 = "f5a3e477e579231fca27bf202bb0e8fbe4fc6339d63b38ccb87c2760b533d1c3",
    strip_prefix = "rules_java-981f06c3d2bd10225e85209904090eb7b5fb26bd",
    urls = [
        "file:///home/zwf/apollo/.cache/distdir/rules_java-981f06c3d2bd10225e85209904090eb7b5fb26bd.tar.gz"
    ],
)

保存后并退出。再次运行build命令:

./apollo.sh build_opt_gpu 

将安装包都下载并移动到需要位置后,若出现如下报错:
在这里插入图片描述
使用以下命令查看:

nvcc --list-gpu-arch

在这里插入图片描述
发现没有compute_89,需要重新安装cuda和nvcc,安装方法见ubuntu20.04下载CUDA教程
此处下载了cuda12.2.0
下载完成后,查看cuda12.2版本安装位置

sudo find / -name cuda-12.2

一般在/usr/local/cuda-12.2
修改.bashrc

sudo gedit ~/.bashrc

vim ~/.bashrc

增加新cuda环境变量,加在最后即可

export CUDA_HOME=/usr/local/cuda-12.2 
export PATH=/usr/local/cuda-12.2/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH

更新环境变量

source ~/.bashrc

再次查看nvcc --list-gpu-arch是否有compute_89
在这里插入图片描述若已经将压缩包粘贴到目录中,仍然报错该压缩包下载失败,再执行一遍即可。

build完成:
在这里插入图片描述

暂存图片
在这里插入图片描述

参考资料:
【1】Apollo(百度自动驾驶):《bazel时提示缺少zlib》
【2】安装Apollo时常见的错误总结和使用窍门
【3】关于RTX 4090 微调llama2模型时出现nvcc fatal : Unsupported gpu architecture 'compute_89’的解决办法

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Java的`OutOfMemoryError: Java heap space`错误表示JVM(Java Virtual Machine)没有足够的内存来执行当前的操作。这是因为当Java程序在运行过程消耗的内存超过了JVM所分配的最大堆空间。以下是一些解决这种错误的方法: 1. 增加JVM内存: - 在启动Java应用时,可以通过命令行参数 `-Xmx` 来设置最大堆大小,例如 `-Xmx2g`,这里`2g`代表2GB内存。确保有足够的物理内存可用。 - 如果是通过IDE(如IntelliJ IDEA或Eclipse)运行,可以在运行配置修改JVM参数。 2. 使用堆内存分段(如G1 Garbage Collector): - 如果可能,考虑使用现代的垃圾收集器G1,它更擅长处理大内存的应用场景,可能会减少内存碎片和停顿时间。 3. 减少内存泄漏: - 检查代码是否有内存泄漏,比如未关闭的流、对象引用导致的循环引用等。使用内存分析工具如VisualVM、JProfiler等帮助定位。 4. 批量处理或分批加载数据: - 如果是大数据操作,尝试分批处理,而不是一次性加载所有数据到内存。 5. 优化代码: - 可能的话,优化算法和数据结构,避免不必要的内存消耗。 6. 使用Off-Heap内存: - 如果可能,使用NIO(Non-blocking I/O)或`sun.misc.Unsafe`进行一些非Java对象的内存管理。 相关问题: 1. 什么是JVM的最大堆空间? 2. 如何在运行时动态调整JVM内存? 3. 为什么垃圾收集器的类型会影响内存管理? 请告诉我,您是否遇到特定的报错信息,或者需要了解哪些方面的详细解决方案?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值