我正在尝试编译链接到 OpenGL 的代码。它最初是为 Linux 开发的,因此对于 Windows (7),我正在使用 MinGW 进行编译。
MinGW 包括 OpenGL header 和环绕 Windows 库的库(opengl32.dll
和 glu32.dll
),但是代码包含对更新的 OpenGL 功能的调用,并且编译失败。用最新的 Mesa3d 替换 MinGW 的 header (Mesa3d header 的旧版本,支持 OpenGL 1.1)取得了一些成功。它会编译,但链接失败,因为库仍然缺少符号(将编译器直接指向 Windows OpenGL 库没有区别)。我已经确认图形硬件 (Nvidia 560M) 支持最新的 OpenGL 标准(事实上,它可以在同一台机器上的 Linux 上运行)。
我尝试安装 Nvidia 的 SDK,但它们只在最新版本中包含 Direct3d(不是一个选项),并且不再提供旧版本(确实支持 OpenGL)供下载。
我这样做的方式是否正确,确实需要 Nvidia 的 SDK,还是我应该做些什么来链接到正确的库?
编辑:链接到的具体缺失函数是 glBufferData
、glMapBuffer
、glUnmapBuffer
、glBindBuffer
、glGenBuffer
和 glDeleteBuffer
。
最佳答案
您需要的是一个 OpenGL 加载库,您应该在 Linux 和 Windows 上都使用它。这将确保您获得您感兴趣的平台所需的所有功能。
关于windows - 将较新的 OpenGL 与 MinGW 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159109/