aarch64-linux-gnu/libGL.so: undefined reference to drmGetDevices2问题解决_/usr/bin/ld: /lib/aarch64-linux-gnu/libavcodec.so.-程序员宅基地

技术标签: 编译相关  

最近在Nvidia的PX2板子上安装Autoware,按照Autoware.ai的source build步骤进行环境配置、下载代码并进行编译。编译过程中遇到了下面的问题:

--- stderr: kitti_player                                                                                                                                                     
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevices2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevice'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDeviceNameFromFd2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevice2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevices'
collect2: error: ld returned 1 exit status
make[2]: *** [devel/lib/kitti_player/kitti_player] Error 1
make[1]: *** [CMakeFiles/kitti_player.dir/all] Error 2
make: *** [all] Error 2

网上搜了一圈,别人也遇到了,但是解决办法是把这里提到的libGL.so换成对/usr/lib/gcc/aarch64-linux-gnu/Tegra/libGL.so文件的软链接。可是我的环境中看了下/usr/lib/gcc/aarch64-linux-gnu/下并没有Tegra,所以不能直接这么操作。肯定是少装东西了。

 

后来在Nvidia开发者论坛中找到了解决办法,No /usr/lib/aarch64-linux-gnu/tegra/libGL.so.0 with Jetpack 4.4.1正是此问题。

解决方法如下:

1.从github中https://github.com/NVIDIA/libglvnd路径下载libglvnd。

按照其中的readme进行编译,最后执行sudo make install进行安装。

2.对出错的库文件进行更新(软连接指向新安装的库文件)

安装后,会在/usr/local/lib/下出现libGL.so库文件,此时进入/usr/lib/gcc/aarch64-linux-gnu/目录,执行一下操作:

sudo rm libGL.so

sudo ln -s /usr/local/lib/libGL.so libGL.so 

这样,相当于重新安装了对应的库,并把/usr/lib/gcc/aarch64-linux-gnu/下的libGL.so通过软连接指向新安装的库文件。


 

另外,在编译过程中碰到的另一个问题报错如下:

c++: internal compiler error: Killed (program cc1plus)

经过排查是板子内存空间不够导致的。由此,可以看出Autoware编译过程中还是很耗费内存的。

删除了一些文件腾出空间后继续编译,编译ok了。

 

这两个问题耽误了我大半天,所以在此记录一下。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/moyu123456789/article/details/106361544

智能推荐

「开源教程」快速配置 TensorFlow 本地开发环境(Docker + Jupyter + VS Code)_docker pull tensorflow/tensorflow:latest-程序员宅基地

文章浏览阅读558次。本文主要参考自 [TensorFlow 官方安装教程](https://tensorflow.google.cn/install),选择了 Docker 容器作为开发环境,并且可以用 Jupyter 和 VS Code 开发。这是我写的第一篇开源教程,开源的意思就是任何人都可以引用、编辑,网上的各种教程五花八门,但很多都不会随时间更新,这就会造成一些教程一开始是可行的,但是过了一段时间就会遇到一些错误,所以我建议大家在学习的时候多看官方教程,因为官方的教程一般都会及时更新并且是最佳实践。_docker pull tensorflow/tensorflow:latest

C/C++使用strcpy函数报错:“XXX处有未经处理的异常:0xC0000005:写入位置0x00000000时发生访问冲突”_strcpy函数导致c0000005异常-程序员宅基地

文章浏览阅读6k次。strcpy是一种C语言的标准库函数,它的作用是把含有'\0'结束符的字符串复制到另一个地址空间,返回值的类型为char *。其原型声明:char *strcpy(char *dest, const char *src);但使用strcpy函数时我们得注意空指针不能作为其参数,既不能作为dest的参数,也不能作为src的参数,否则会报错误:“XXX处有未经处理的异常:0xC0000005:写入..._strcpy函数导致c0000005异常

FreeRTOS命令行接口CLI移植_移植cli-程序员宅基地

文章浏览阅读1.8k次。FreeRTOS命令行接口CLI移植原文链接:https://blog.csdn.net/xiaoyuanwuhui/article/details/112700845一、简介详细介绍可参考FreeRTOS-Plus-CLI官网地址入口FreeRTOS+CLI(Command Line Interface, 命令行接口)提供了一种简单、小型、可扩展且RAM高效的方法,使FreeRTOS应用程序能够处理命令行输入。添加一条指令的步骤如下:提供一个实现命令功能的函数将命令映射到该功能函数注册命令_移植cli

正点原子linux开发板使用ffmpeg代码播放视频_正点原子 ffmpeg-程序员宅基地

文章浏览阅读745次,点赞21次,收藏22次。正点原子linux开发板,使用ffmpeg代码播放视频。_正点原子 ffmpeg

基于单片机GSM通讯手机SIM900模块系统设计(毕设课设)_gsm无线通讯代码-程序员宅基地

文章浏览阅读1.5k次。我本设计介绍了一种基于STM32的多功能GSM通讯系统设计方案。系统以STM32单片机为核心,采用SIM900模块GSM通讯,利用μC/OS-II与μC/GUI系统进行多任务与TFT彩屏的控制,并通过STM32的串口控制GSM模块STM900实现通讯。系统通过STM32的SPI接口实现触控从而实现系统的输入、通过STM32的FSMC接口实现TFT显示从而实现系统的输出。通过STM32的串口可有效发送与接收GSM模块的信息。手机SIM900模块GSM通讯系统【资源下载】下载地址如下(870):http_gsm无线通讯代码

计算机网络自顶向下方法第七版 英文pdf_《计算机网络:自顶向下方法》读书笔记——第一章:计算机网络和因特网...-程序员宅基地

文章浏览阅读2.4k次。前言本文首发于我的个人博客:《计算机网络:自顶向下方法》笔记——第一章:计算机网络与因特网 - YouWolf's Blog​youwolf.cn由于不确定知乎对markdown的支持程度,本人精力有限,来不及修改,所以可以前往本人博客获得更好的阅读体验什么是因特网具体构成概述因特网是一个世界范围的计算机网络,即它是一个互联了遍及全世界数十亿计算设备的网络。所有设备被称为主机(host)或端系统 ..._计算机网络自顶向下第七版pdf

随便推点

UML类图_用类图表示出电视机的属性及方法-程序员宅基地

文章浏览阅读1.4k次。UML类图是描述系统内部对象特征、对象之间关系、以及对象所属的每个类的属性和操作、捕获系统的静态特征的模型。类图是面对对象思想的最直接表达,因为它贴近现实世界,所以表述的更为直观,有益于和客户沟通。 画类图首先应该明确类的定义:类是具有相同属性、行为、关系的一组对象的抽象。而对象是累的一个实例,例如洗衣机是一个家用电器。那么洗衣机就是家用电器这个类中的一个实例。画类图有两_用类图表示出电视机的属性及方法

小白VLOG短视频训练营课程-程序员宅基地

文章浏览阅读192次。小白VLOG短视频训练营课程

解决postcss、postcss-loader 和less-loader 导致的报错问题_typeerror: "postcss-pxtorem" is not a function-程序员宅基地

文章浏览阅读1.5w次,点赞4次,收藏15次。这里写自定义目录标题欢迎使用Markdown编辑器一、问题背景介绍二、报错问题分析:欢迎使用Markdown编辑器解决 Syntax Error: Error: PostCSS plugin postcss-pxtorem requires PostCSS 8.一、问题背景介绍1、在Vue的项目中使用了postcss-pxtorem这个包,同时在项目根目录中,配置了postcss.config.js,如下图所示:module.exports = { plugins: { 'autopr_typeerror: "postcss-pxtorem" is not a function

表单标签<input>的介绍_input标签-程序员宅基地

文章浏览阅读3.1w次,点赞56次,收藏398次。表单标签的介绍_input标签

解决Cannot load php7apache2_4.dll into server导致无法启动Apache-程序员宅基地

文章浏览阅读8.2k次,点赞6次,收藏9次。萌新在面对服务端开发使用PHP搭配Apache时会遇见Cannot load php7apache2_4.dll into server 例如01 最最最主要的问题Apache与PHP版本不一致cd 进入Apache的bin目录使用命令httpd -version来查看Apache的版本, 例如我的版本显示的是Win32 此时就要去PHP官网下载对应的32位版..._cannot load php7apache2_4

大数据各岗位薪资多少?一张图告诉你答案_云计算工资水平折现图-程序员宅基地

文章浏览阅读2.5k次。目前,借由大数据时代的高速发展,它的岗位需求开始迅速扩张,从而给想从事大数据行业的人带来了大量的发展机会,同时也为大家提供了大量的职业发展通道。那么,在这个高速运转的时代,面对如此众多的大数据就业岗位的时候,我们应该去选择什么样的职业发展方向并努力的去学习相应技能从而达到企业要求呢?根据我们行业内各大权威的机构预测,在2020年期间,大数据行业在大数据相关岗位需求中不断激增,这其中Java大数据工程师的缺口大约会在14万到19万人之间,对于懂得如何利用大数据做决策的分析师和经理的岗位缺口则将达到150万_云计算工资水平折现图