导入的目标"Qt5::Gui"引用了文件"/usr/lib/x86_64-linux-gnu/libEGL.so",但该文件不存在。

所以,15.04 x64,刚刚安装好。
我按照以前的方式安装了Nvidia二进制文件(通过控制台,关闭lightdm),因为我遇到了DRI2身份验证错误。
然后我想要构建nv OpenGL示例,他们说这些是先决条件:
sudo apt-get install g++ binutils-gold xorg-dev libglu1-mesa-dev

但是它抱怨缺少libGL.so,所以我在网上搜索后尝试安装了所有这些东西:
   61  sudo apt-get install libgl1-mesa-dev 
   62  sudo apt-get autoremove
   63  make
   64  sudo apt-get install mesa-common-dev 
   65  sudo apt-get install freeglut3-dev freeglut3
   66  make
   67  sudo apt-get install build-essential

然后,我不知道怎么回事,最终卸载了NVIDIA驱动程序!(中间还有一个自动删除的过程,其中包含一些nv的东西,可能把一切都搞砸了)
无论如何,在重新安装了nv二进制文件之后,我尝试构建vogl(一个GL调试工具),结果又出现了同样的问题。
elect@elect-desktop:~/NetBeansProjects/vogl/vogl_build/release64$ cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_X64=On ../..

cmake options:
  -DCMAKE_BUILD_TYPE='Release': Build debug or release. (Debug|Release)
  -DVOGLTEST_LOAD_LIBVOGLTRACE='': glitest will load libvogltrace.so manually (don't implictly link against libgl.so). (On|Off)
  -DVOGLTRACE_NO_PUBLIC_EXPORTS='OFF': Don't define any public GL exports in libvogltrace.so. (On|Off)
  -DVOGL_ENABLE_ASSERTS='OFF': Enable assertions in all voglcore builds (including release). (On|Off)
  -DCMAKE_VERBOSE='OFF': Spew cmake project options. (On|Off)
  -DBUILD_X64='On': Build 32 or 64-bit. (On|Off)
  -DWITH_ASAN='OFF': Build with Address sanitizer. (On|Off)
  -DUSE_TELEMETRY='OFF': Build with Telemetry. (On|Off)
  -DUSE_MALLOC='': Use system malloc (not STB Malloc). (On|Off)

Not forcing assertions to be enabled (VOGL_ENABLE_ASSERTS=FALSE)
libvogltrace.so will define GL/GLX public exports
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:32 (_qt5_Gui_check_file_exists)
  /usr/lib/x86_64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:54 (_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:100 (find_package)
  /usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake:26 (find_package)
  src/vogleditor/CMakeLists.txt:14 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/elect/NetBeansProjects/vogl/vogl_build/release64/CMakeFiles/CMakeOutput.log".
See also "/home/elect/NetBeansProjects/vogl/vogl_build/release64/CMakeFiles/CMakeError.log".

elect@elect-desktop:~/NetBeansProjects/vogl/vogl_build/release64$ ls /usr/lib/x86_64-linux-gnu | grep -i libegl
libEGL.so
libEGL.so.1
libEGL.so.346.59

怎么了,伙计们?
1个回答

总之,让我来概括一下故事...
$ ls /usr/lib/x86_64-linux-gnu | grep -i libegl
libEGL.so 
libEGL.so.1 
libEGL.so.346.59

ls -l /usr/lib/x86_64-linux-gnu/libEGL.so
lrwxrwxrwx 1 root root 18 mar 30 17:10 /usr/lib/x86_64-linux-gnu/libEGL.so -> mesa-egl/libEGL.so

并且

lrwxrwxrwx 1 root root 15 mar 30 17:10 /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so -> libEGL.so.1.0.0

但是我没有任何libEGL.so.1.0.0的文件。
看起来这可能是由于mesa和nv二进制文件引起的混乱。
我第三次安装了这些二进制文件,然后它就正常工作了。
另一个可能的解决方案是Angelo Geels在评论中提到的方法。
sudo rm /usr/lib/x86_64-linux-gnu/libEGL.so; sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so

这并没有回答问题。如果你想对作者进行批评或请求澄清,请在他们的帖子下方留言。 - Maythux
嗯,看起来我搞砸了GL库的链接,稍后我可以发布一个澄清,解释出了什么问题。 - elect
3@新用户 这就是答案...是由原帖作者发布的。 - Seth
@新用户,已更新 - elect
@elect 那更好得多 +1 - Maythux
@新用户 谢谢!对不起第一个版本,我很匆忙没有太多时间,但我仍然想说我解决了,这样就不会有人浪费时间在那上面,或者有同样问题的人也可以解决它.. :) - elect
3我无法添加另一个答案,因为问题已关闭,但是我通过重新创建符号链接来解决了这个问题:sudo rm /usr/lib/x86_64-linux-gnu/libEGL.so; sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so - Codecat
谢谢您的贡献,我可以在答案中报告它。 - elect