libGL.so或libEGL.so无法链接问题-The imported target "Qt5::Gui" references the file

库文件libGL.so或libEGL.so无法链接问题-The imported target "Qt5::Gui" references the file

引言

编译出错如下:

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/libGL.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:74 (_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:56 (find_package)

或者

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:74 (_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:56 (find_package)

在这里插入图片描述
找到相应的路径查看该文件的属性,显示链接已断。自己解决时还误把原文件给删除了。

最后折腾了很久现总结解决方案如下:

1、首先查看该文件是否存在

ls /usr/lib/x86_64-linux-gnu | grep -i libegl

在这里插入图片描述如果该文件不存在,什么都不会弹出。

locate libGL

查找本地的其他路径里面的libGL.so文件,然后以管理员权限复制一份过去。(一般情况下是有的,只是我操作不当误删除了)

sudo su  #输入密码
cp  libGL.so /usr/lib/x86_64-linux-gnu/   #在libGL.so所在文件夹操作,不过无论在哪儿把路径添加正确就行

2、使用命令行进行链接

ls -l /usr/lib/x86_64-linux-gnu/libGL.so       #ln  -s   源文件  目标文件  省略源文件则链接到共享库(x-sharedlib)

如果出现:ln: 无法创建符号链接"/usr/lib/x86_64-linux-gnu/libGL.so": 文件已存在, 先移除:

sudo rm /usr/lib/x86_64-linux-gnu/libGL.so

在这里插入图片描述
当然移除前最好先备份以防万一,不然又得重复第一步操作.最后进行链接.链接也可以链接到类似的版本或者其他文件夹的libGL.so。成功后也可以在文件夹看一下文件的属性是否连接上。

sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1   /usr/lib/x86_64-linux-gnu/libEGL.so

记录一下吧。

猜你喜欢

转载自blog.csdn.net/fb_941219/article/details/83549720