我花了一天的时间努力让我的简单引擎在Mac上工作。我有SDL的工作,现在唯一的麻烦是opengl。引擎使用现代opengl(着色器为基础),所以需要GLEW。我已经尝试了一切从fink到MacPorts安装它,没有工作。
我最成功的是从源代码构建它。首先我得到了一个错误,说'GL/glu.h' no such file or directory found.
,所以我重命名包含为OpenGL/glu.h
,这就解决了这个问题。但现在我得到了这个错误ld: unknown option: -shared
,我完全卡在这一点上。
如果有人知道如何做到这一点,我也宁愿静态构建。
7条答案
按热度按时间o4hqfura1#
您可以使用Homebrew为您完成这项工作:
ny6fqffe2#
引擎使用现代的opengl(基于着色器),因此需要GLEW
GLEW并不是使用现代OpenGL功能的先决条件。它是一种加载扩展功能的方法,而不是唯一的方法。你使用的是MacOS X,所以扩展系统对你来说用处不大,因为支持的OpenGL版本完全取决于操作系统和可用的框架。苹果自己开发OpenGL驱动程序,他们提供的扩展只是那些,OpenGL规范中没有的功能(即特定供应商和EXT)。您所需要的只是一个足够新的OpenGL框架版本。2006年之后发布的任何MacOS X都可以做到这一点。
ztigrdn83#
更新20180912 -不要使用GLEW。它只是不值得的麻烦...
我已经使用以下代码从源代码安装了GLEW:
使GLEW_DEST="$HOME/local”OPT="-march= core 2-O2”安装全部
您的优化和目标可能会有所不同。这将生成libGLEW. a、libGLEWmx. a,以及
$HOME/local/lib
中的dylib对应项。pkgconfig
子目录还将包含glew.pc
。GLEW也不总是与其他文件兼容。必须设置像glewExperimental
这样的全局文件,并且需要注意包含其他头文件的顺序:<OpenGL/gl3.h>
或<glfw.h>
等等。如果我可以提供一些建议-忘记SDL的现代GL编程。如果你想进入 * 纯 *,现代GL的OS X。-考虑这样的东西:
安装GLFW也非常简单:
请输入可可的密码,如果您有任何问题,请与我们联系。
同样,您的设置可能会有所不同。
2016年4月12日:我对SDL的评论已经过时了,就像其他人指出的那样。特别是如果你正在开发另一个引擎的话。我认为glfw 3是在OSX上制作现代OpenGL应用程序的一种更简单的方法。它的代码编写和维护都非常好,(正确!)将重点放在GL与事件处理上.显然,从“引擎”得Angular 来看,SDL 2提供了可移植得扩展视频API,音频API,线程API,尽管对于C11和C++11,甚至线程API抽象层也可能是冗余的。
GLEW的问题在于,在没有大量用户干预的情况下,它无法处理多个上下文。这对OSX来说不是问题,OSX提供了一个核心配置文件API,不需要加载“功能点”。IIRC,GL on X(DRI?)也有这个--但我可能错了。还有其他的加载器在那里。我还在等待一个来统治他们所有人,这确保在必要时为多个上下文加载不同的函数指针,并使用线程本地(甚至pthread键)进行正确调度,这可以从Khronos或其他任何人的最新gl.xml中生成...
2018年9月12日
我认为现在最简单的方法是使用GLFW提供上下文,并使用GLAD解析GL函数指针。唯一的缺点是没有有效的管理多个GL上下文。这是GLFW目前在其演示中使用的......在这一点上,我会完全忘记GLEW。
ogq8wdun4#
MacPorts应该会为您安装这些库及其依赖项:
在构建游戏时,最好在构建和链接步骤中调用g++;您只需要参考**/opt/local**,它就可以找到MacPorts安装的头文件和库。如果您愿意,也可以静态链接.a文件:
如果您是从命令行进行构建,我推荐使用using a Makefile and building with make。
h79rfbju5#
上面的答案没有一个能满足我的需求:这是一种快速设置Xcode项目方法,它带有静态Glew依赖项。
1.从此处下载GLEW源代码http://glew.sourceforge.net/
1.解压缩目录,并从根目录执行
(this如果您想动态链接,安装.dylib,它位于
lib/
)。您需要安装CMake才能运行上面的命令。如果尚未安装,您可以使用1.将.a静态库从/usr/local/lib/复制到XCode项目
1.更新目标的Xcode构件设置中的“标头搜索路径”以包括标头(通常位于/usr/local/include中)。或者只是将标头拷贝到您自己的项目中。
2o7dmzc56#
我建议你去http://glew.sourceforge.net下载ZIP文件到你的Mac上,然后在Finder中输入glew.h来查看文件,控制点击它,获取信息,复制文件的路径,然后进入你各自的程序文件(例如commons.h),它包含
#include <GL/glew.h>
依赖项,并将其更改为:然后,尝试再次编译程序,这次应该不会出现任何GLEW错误。
cig3rfwq7#
也许你应该试试这个命令
brew install --build-from-source glew
。