安装Apollo时常见的错误总结和使用窍门

2023-10-11 01:08

本文主要是介绍安装Apollo时常见的错误总结和使用窍门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

安装Apollo时常见的错误总结

1 缺少zlib

  进入docker后编译时报错:ERROR: An error occurred during the fetch of repository 'zlib',如下图所示:

  出现这个错误的原因是Apollo依赖protobuf库,而protobuf库又依赖zlib库。这些库都要从网上下载,而protobuf库提供的zlib下载链接是https://zlib.net/zlib-1.2.11.tar.gz,问题是这个链接已经失效了,下载当然会失败。

  解决方法是替换新的可用链接,具体就是修改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",],}

  见微知著,从这个小问题便可以看出百度的Apollo自动驾驶项目居然需要从美国服务器下载很多的依赖库。而且一旦下载不成功就报错,这种严重依赖网络条件的安装方式对不熟悉Linux的用户来说实在是太不友好了,完全是逼着用户自学Linux,这不是欺负人不懂Linux吗。反正我是自学grep命令,把文件夹里所有包含关键字“https://zlib.net/zlib-1.2.11.tar.gz”的位置导出到txt里,然后一个个看应该改哪一个文件。一个号称安全性很高的自动驾驶项目,安装起来居然需要一些不靠谱的时刻可能改变的网络链接,真是可笑。百度为什么不把所有依赖都放到自己家的网盘里提供一次性打包下载呢。

2 FATAL: mkdir('/apollo/.cache/bazel'): (error: 13): Permission denied

  运行脚本sudo ./apollo.sh build_opt编译源代码时报错,如下图。错误的原因可能是使用了sudo,解决方法是直接用bash ./apollo.sh build_opt,不要加sudo。但有时候错误是反过来的,也就是不用sudo会报错,这时试试用sudo即可。

3 Error response from daemon: Container is not running

  我们重启电脑后,有时用bash docker/scripts/dev_into.sh会无法进入docker中,报错如下:

Error response from daemon: Container 78fb863e2...... is not running

  此时,只需要用docker start 重启docker容器即可,命令如下。

docker start apollo_dev_q

  我的容器名字是apollo_dev_q,换成你自己的即可,不知道自己的容器叫什么可以用docker ps -a查看,如下图,就是最后

这篇关于安装Apollo时常见的错误总结和使用窍门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184408

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

C++中初始化二维数组的几种常见方法

《C++中初始化二维数组的几种常见方法》本文详细介绍了在C++中初始化二维数组的不同方式,包括静态初始化、循环、全部为零、部分初始化、std::array和std::vector,以及std::vec... 目录1. 静态初始化2. 使用循环初始化3. 全部初始化为零4. 部分初始化5. 使用 std::a

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t