Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac SDL+;OpenGL应用程序拒绝从终端以外的任何位置启动_Macos_Opengl_Shared Libraries_Sdl - Fatal编程技术网

Macos Mac SDL+;OpenGL应用程序拒绝从终端以外的任何位置启动

Macos Mac SDL+;OpenGL应用程序拒绝从终端以外的任何位置启动,macos,opengl,shared-libraries,sdl,Macos,Opengl,Shared Libraries,Sdl,我们已经有了一个在OSX上运行了好几年的系统,现在没有任何问题;我们最近将游戏从SDL 1.2.15升级到了2.0,在转换过程中的某个时刻,我搞错了一些东西,现在我们遇到了一个奇怪的问题,应用程序在终端上启动得很好,但当你双击Finder启动应用程序时,它只会在dock中反弹一次,然后就消失了 我们感到困惑,因为据我所知,Console中只打印了一行代码。app:退出时带有代码:255(从终端自然运行在这里没有帮助,因为我们无法重现那里的问题;在终端中启动时,应用运行良好) 因此,我们唯一能想到

我们已经有了一个在OSX上运行了好几年的系统,现在没有任何问题;我们最近将游戏从SDL 1.2.15升级到了2.0,在转换过程中的某个时刻,我搞错了一些东西,现在我们遇到了一个奇怪的问题,应用程序在终端上启动得很好,但当你双击Finder启动应用程序时,它只会在dock中反弹一次,然后就消失了

我们感到困惑,因为据我所知,Console中只打印了一行代码。app:
退出时带有代码:255
(从终端自然运行在这里没有帮助,因为我们无法重现那里的问题;在终端中启动时,应用运行良好)

因此,我们唯一能想到的是,它要么是我们在main.cpp中搞砸的东西,要么是我们在我如何设置dylibs/frameworks时使用的东西。也有可能是因为工作目录设置不正确,但尽我所能,我相信我们做得对(不管您当前的工作目录如何;应用程序试图强制将所述目录设置在Resources文件夹中-这是启动游戏所必需的,但我不知道我们是否做错了)。对于stackoverflow,这感觉有点尴尬,对此我深表歉意,因为这不是一个简单的问题“粘贴此代码并询问问题”工作。我有两种方法可以让您复制它;首先,我们是一个开源项目,您可以获得我们的源代码(完整的mac项目文件和repo中包含的所有依赖项,设置并准备就绪,与我可能错误创建的源代码完全相同),您需要做的一个更改是在根级别打开一个名为
master config.cfg
的文件,并从中删除
/
注释(这样引擎知道您想要启动引擎附带的简单演示游戏)

或者,我有一个精简版(~15mb压缩版)并尝试运行,如果这足以诊断问题的话


如前所述,我们是开源的,所以我们欢迎对修复程序的任何拉取请求!

您需要编写一个最小的Cocoa包装,这样OS X就不会因为您没有正确启动而对您发出SIGKILL信号。我将使用该包装给您一个拉取请求。

因此,我们发现了问题;尝试过它的其他人在控制台上的数据输出比其他人多当我们这样做的时候,出于某种原因。原来问题是-psn或Finder传入的任何参数过去都是由SDLMain处理的,但现在我们的main()得到了它,并因此退出。无论如何,这是一个有趣的想法,也是唯一的答案,所以我给了你奖金。