我正在尝试安装从以下位置下载的 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,因为我也感到很困惑。
- 验证您是否已获得所需的 .so 文件,并找到它们的路径
find /usr -name 'libGL.so'
# in my case, on a raspberry pi I get
# /usr/lib/aarch64-linux-gnu/libGL.so
- 我相信您可以修改
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)
- 如果 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 本身可能存在问题,需要单独查找。