在XTDrone的PX4搭建中,
make px4_sitl_default gazebo过程报错:
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:27 (message):
The imported target "Qt5::Gui" references the file
"/usr/lib/x86_64-linux-gnu/libEGL.so" #关键点
but this file does not exist. Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
"/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"
but not all the files it references.
Call Stack (most recent call first):
/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:50 (_qt5_Gui_check_file_exists)
/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:72 (_qt5gui_find_extra_libs)
/usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:158 (include)
/usr/lib/x86_64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:99 (find_package)
/usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package)
CMakeLists.txt:61 (find_package)
-- Configuring incomplete, errors occurred!
原因:查看文件属性,发现:链接(已断) (inode/symlink),或Link (broken) (inode/symlink)
解决方法:
登录root:
sudo su #并输入密码
ls -l /usr/lib/x86_64-linux-gnu/libEGL.so #查看libEGL.so这个文件的inode码(因为Linux系统靠inode码而非文件名来识别文件,这个inode码下面操作要用到
输出:
lrwxrwxrwx 1 root root 18 6月 15 2018 /usr/lib/x86_64-linux-gnu/libEGL.so -> mesa-egl/libEGL.so
可知libEGL.so这个文件是链接到mesa-egl下的libEGL.so文件上的,可把mesa-egl下的libEGL.so文件当源文件。
ln -s /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so /usr/lib/x86_64-linux-gnu/libEGL.so #开始软链接,软链接语法:ln 源文件 目标文件
报错:
ln: failed to create symbolic link '/usr/lib/x86_64-linux-gnu/libEGL.so': File exists
删除这个存在的目标文件libEGL.so:
先备份再:
sudo rm /usr/lib/x86_64-linux-gnu/libEGL.so
再链接:
ln -s /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so /usr/lib/x86_64-linux-gnu/libEGL.so
再把libEGL.so链接到其他版本上:
sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so
再查看文件属性,发现已经链接成功。

再次make,出现相似的报错:
The imported target "Qt5::Gui" references the file
"/usr/lib/x86_64-linux-gnu/libGL.so"
这次轮到libGL.so了,处理方法类似libEGL.so。
再次make px4_sitl_default gazebo,PX4-Gazebo配置成功:

参考:
XTDrone: 文档.
博客: 链接.
博客介绍了在Ubuntu系统下,构建XTDrone的PX4 SITL时遇到的Qt5库依赖问题,特别是libEGL.so和libGL.so的链接错误。通过检查文件属性发现libEGL.so为软链接,且链接已损坏。解决方案包括登录root权限,删除现有链接,重新创建指向正确源文件的软链接。经过此修复,成功解决了问题并完成了PX4-Gazebo的配置。
6362

被折叠的 条评论
为什么被折叠?



