我最近安装了 Bumblebee 和 Nvidia 331 驱动程序,因为显然这是让我的 Geforce 860m 正常工作的唯一方法。现在,当我尝试编译 OpenGL 程序时,它的行为就像我有一个 2.0 之前的 OpenGL 版本一样(对于与着色器相关的函数,如 glUniform1f,出现“错误:glFoo 未在此范围内声明”)。当尝试使用与以前相同的 makefile 编译以前可以编译的程序时,会发生这些错误。
我发现解决这个问题的唯一方法是使用 GLEW,但这很不幸,因为我是 OpenGL 课程的助教,需要能够在我的计算机上运行学生的作业,而他们的作业不会使用 GLEW。
GLxinfo 告诉我我有 OpenGL 3.0 版本,但唯一可以编译的程序是为 2.0 之前版本编写的程序。
Bumblebee/Nvidia 是否用旧版本替换了我的某个 OpenGL 库?我该如何修复此问题?
答案1
我不应该安装 linux-headers-generic。我已编辑了对另一个问题的回答以反映这一点。