我正在研究一些使用OpenGL和SDL的跨平台代码,但立即遇到了Mac OSX上的问题。OSX上的SDL + OpenGL:NSAutoreleaseNoPool()
以供参考,在这里是在GitHub代码库:https://github.com/GrooveStomp/platformer
我还推我看到到同一回购错误:现在https://github.com/GrooveStomp/platformer/blob/master/errors.txt
,从阅读中,我已经做了,它好像SDL只是简单地包装Mac OSX的Objective-C Cocoa图层,我需要声明自己的NSAutoreleasePool来包装我的整个程序。那是对的吗?
我刚刚遇到这个链接:http://sourceforge.net/apps/wordpress/paintown/2010/12/26/sdl-and-osx/其中作者从源代码安装,没有问题。我使用Homebrew进行了安装,我认为这相当于作者的第3步,因为在构建时我必须指定“-framework OpenGL”。
[编辑]
所以,事实证明,在NSAutoreleaseNoPool()问题应该通过以下三个步骤来照顾:
- 的main()应该有这样的签名:INT主( int argc,char * argv [])
- #include <SDL.h>在main()所在的源文件中。
- 与-lSDLmain
结果链接是SDL将包裹它自己的main()与NSAutoreleasePool和周围的所有我的主。然而,当我这样做,我得到如下所示的错误:
https://github.com/GrooveStomp/platformer/blob/master/make_errors.txt
哪个SDL和OSX版本? – genpfault 2011-02-17 17:18:46
OSX达尔文10.6.0,SDL 1.2.14 – GrooveStomp 2011-02-18 17:38:39