106

阿木币

1

精华

396 小时

在线时间

技术大V

Rank: 4

发表于 2020-2-17 19:19:20 4183 浏览 2 回复

[仿真开发] 仿真编译gazebo报错"/usr/lib/x86_64-linux-gnu/libEGL.so"

本帖最后由 eason 于 2020-2-17 19:22 编辑

问题描述:PX4固件从1.9.2版本升级到v1.10.0版本时候,仿真编译没有问题,仿真编译使用jmavsim也没有问题,但是仿真编译使用gazebo出现报错:"/usr/lib/x86_64-linux-gnu/libEGL.so"
环境描述:Ubuntu16.04 px4-v1.10.0 gcc7.2.1 gnu5.4.0 ros-kinetic gazebo9

1、首先刚升级到v1.10.0版本,子模块也更新好了,执行最简单的编译SITL,make px4_sitl_default.如下图1所示。

2、接着执行仿真编译运行gazebo,make px4_sitl_default gazebo.如下图所示图2-1,2-2,2-3.图2-3中出现"/usr/lib/x86_64-linux-gnu/libEGL.so"无法找到该链接的问题,下面并给出了造成该问题的原因可能有哪些。第一个该文件被删除,或者被移动到其他的位置了。第二个是某个东西未能完全安装或者卸载成功。第三个是安装包本身有故障,可能包含了.cmake文件。

3、解决过程:如图3,先查看libegl所有相关的链接文件,命令:ls /usr/lib/x86_64-linux-gnu/ | grep -i libegl
然后查看libEGL.so的所有属性,命令:ls -l /usr/lib/x86_64-linux-gnu/libEGL.so。发现它链接指向的是mesa-egl/libEGL.so
再查看mesa-egl/libEGL.so的所有属性,命令:ls -l /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so。发现这个链接指向的是libEGL.so.1.0.0。我们在查看了libegl所有相关的链接文件中并没有libEGL.so.1.0.0。那我们只能手动创建一个软链接了sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so,我是讲存在的链接文件libEGL.so.1链接指向到libEGL.so。

4、最后我们再次仿真编译启动gazebo,如图4-1,4-2,4-3,4-4.仿真编译gazebo完成
图4-4.png
图4-3.png
图4-2.png
图4-1.png
图3.png
图2-3.png
图2-2.png
图2-1.png
图1.png

评分

参与人数 1阿木币 +6 收起 理由
admin + 6 很给力!

查看全部评分


扫一扫浏览分享
回复

使用道具 举报

144

阿木币

0

精华

31 小时

在线时间

老司机

Rank: 2

发表于 2020-2-21 09:31:04
赞一个,感谢分享!
回复 点赞

使用道具 举报

131

阿木币

0

精华

272 小时

在线时间

管理员

Rank: 9Rank: 9Rank: 9

发表于 2020-2-21 12:28:03
赞 不错的资料
我不为己,谁人为我,但我只为己,那我又是谁?
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表