CMake 找不到 OpenGL(缺少:OPENGL_glx_LIBRARY)

CMake 找不到 OpenGL(缺少:OPENGL_glx_LIBRARY)

我正在尝试安装从以下位置下载的 freeglut-3.0.0 源代码源码

当我输入cmake .时它显示错误Could not find OpenGL (missing: OPENGL_glx_LIBRARY)

由于在 stackoverflow、askubuntu 和 github 上有很多关于这个问题的问题和答案。我尝试了这些问题给出的建议(这里这里这里这里这里这里以及许多其他....),当我按照建议安装任何包时,我总是能得到想要的结果,package_name is already the newest version但问题仍然是一样的。

在许多建议和答案中都提到这些库已经由 Nvidia 驱动程序安装,并且似乎这些库已安装在我的 PC 中,但 Cmake 找不到它。

我的电脑配置是

  • Ubuntu 18.04
  • Nvidia 驱动程序 440.100

可能是我的这个问题似乎与许多问题重复,但我无法找到我的问题的任何解决方案。

寻求一些善意的建议。

答案1

实际上,你可以部分感谢 ChatGPT,因为我也感到很困惑。

  1. 验证您是否已获得所需的 .so 文件,并找到它们的路径
find /usr -name 'libGL.so'
# in my case, on a raspberry pi I get
# /usr/lib/aarch64-linux-gnu/libGL.so
  1. 我相信您可以修改CMakeLists.txt或更改 cmake 的命令行参数。

    如果您编辑 cmake,请在顶部附近添加这两行。
    注意:这里的变量名称与错误消息略有不同(但它仍然可以解决问题,至少对我来说是这样)
set(OPENGL_gl_LIBRARY /usr/lib/x86_64-linux-gnu/libGL.so)
set(OPENGL_glx_LIBRARY /usr/lib/x86_64-linux-gnu/libGLX.so)
  1. 如果 cmake 命令仍然不起作用,您可以尝试以下健全性检查。
    如果您正在使用ssh,请先使用重新连接
ssh -X blah_address 
# so that displays are enabled

然后(无论你是否使用 ssh)执行

DISPLAY=:0
glxinfo | grep OpenGL

输出应类似于:

OpenGL vendor string: Broadcom
OpenGL renderer string: VC4 V3D 2.1
OpenGL version string: 2.1 Mesa 22.2.5
OpenGL shading language version string: 1.20
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 22.2.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16 

如果没有,则意味着 OpenGL 本身可能存在问题,需要单独查找。

相关内容