无法在 OSX 下编译 OpenGL 项目

Posted

技术标签:

【中文标题】无法在 OSX 下编译 OpenGL 项目【英文标题】:Can't compile OpenGL project under OSX 【发布时间】:2015-05-30 19:56:56 【问题描述】:

有一个 OpenGL 项目我必须为我正在参加的课程工作。 由于 GLEW 存在链接错误。经过一番研究,我发现在 OSX GLEW 上是没有必要的。

我包含以下标题。

//#include "CL/cl_gl.h"
#include <OpenGL/glu.h>
#include <OpenGL/gl.h>
//#include <OpenGL/glext.h> 
//#include <GLUT/glut.h>

但我仍然收到以下类型的编译错误:

  use of undeclared identifier 'GL_TEXTURE_BUFFER_EXT'
    glBindTexture(GL_TEXTURE_BUFFER_EXT, 0);
                  ^

在 OSX 上,GLenum GL_TEXTURE_BUFFER_EXT 分别位于何处。 GL_TEXTURE_BUFFER 定义了吗?

【问题讨论】:

【参考方案1】:

EXT 变体将仅在 glext.h 或由各种 GL 扩展加载器生成或生成的标头中定义。实际的GL_TEXTURE_BUFFER 枚举在OpenGL/gl3.h 中定义。在 OSX 上,现代 GL 是操作系统的一部分,您可以直接链接现代 GL 功能。但是,出于可移植性的原因,我仍然建议使用一些 GL 加载程序。

【讨论】:

其实它是一个多平台项目,它使用 GLEW 和 GLFW 作为包装器,我想这些是你所指的加载器。但我无法让 GLEW 链接。由于我只需要编写一些着色器,因此我不想打扰太多。

以上是关于无法在 OSX 下编译 OpenGL 项目的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX下编译安装PostgreSQL

杂记:OSX下编译安装最新版RedisDesktopMmanager

OSX下编译安装opencv3.1.0与opencv_contrib_master

在VS2013下编译的C ++代码无法在VS2015下编译

在我的 CLR 项目中添加包含会使 WLR 无法在启用 /clr 的情况下编译

无法在发布模式下编译的 ide 之外运行 qt-creator 可执行文件