我刚刚从 xswat ppa 全新安装了 11.10 + nvidia-current(因为 ubuntu 附带的当前版本对我的 gpu 来说不兼容)。
请花点时间了解每个步骤。我不知道在哪里报告这个问题。
安装 nvidia-current[-dev]
安装 nvidia-current 和 nvidia-current-dev 后,缺少以下文件:
/usr/lib/libGL.so
/usr/include/GL/gl.h
两者都安装在:
/usr/lib/nvidia-current/libGL.so
/usr/include/nvidia-current/GL/gl.h
默认情况下,这些无法通过标准路径访问,并且破坏了许多软件的编译。(未找到 gl.h,则未找到 -lGL。)
设计解决方案存在缺陷
为了解决这个问题,我们需要安装 libgl1-dev。libgl1-dev 在 /usr/include/GL/gl.h 中安装 mesa gl.h,并在 /usr/lib/libGL.so 中安装 mesa libGL.so
使用 libgl1-dev,我可以编译与 gl 相关的软件。但编译后,我可以看到使用了 nvidia libGL:
$ ldd mysoftware
libGL.so.1 => /usr/lib/nvidia-current/libGL.so.1 (0x00007f620d78c000)
结论
- 我们需要 libgl1-mesa-dev 才能默认编译与 gl 相关的软件
- 我们在编译时不使用 nvidia 标头,而是使用 mesa 标头
- 我们在运行时不使用任何 mesa lib
问题
- 既然我的计算机上已经有了一切,为什么还要安装 Mesa 开发?
- 如果未安装 mesa,ubuntu 是否需要在标准位置安装或符号链接 nvidia libs 和 header ?