2

我们有一个相当成熟的跨平台游戏引擎,我们已经在 OSX 上运行了好几年了。我们最近将游戏从 SDL 1.2.15 升级到 2.0,在转换过程中的某个时刻,我搞砸了一些事情,现在我们遇到了一个奇怪的问题,即应用程序从终端启动得很好,但是当您从在 Finder 中双击,它只会在 Dock 中弹跳一次,然后就消失了。

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

所以我们唯一能想到的是它要么是我们在 main.cpp 中搞砸的东西,要么是我们在设置 dylibs/frameworks 的过程中使用的东西。这也可能与工作目录设置不正确有关,但尽我所能,我相信我们做对了(无论您当前的工作目录如何;该应用程序试图强行将所述目录设置为位于 Resources 文件夹中 - 这是启动游戏所必需的,但我不知道我们是否做错了)。对于stackoverflow来说,这感觉有点尴尬,对此我深表歉意,因为这不是一个简单的“粘贴这段代码并询问有什么问题”的工作。我有两种方法让你重现它;首先我们是一个开源项目,在我们的 github 页面。您需要做的一项更改是在根级别打开一个名为 的文件master-config.cfg,然后从中删除//注释(这样引擎就知道您要启动引擎附带的简单演示游戏)。

或者,我有一个精简的(约 15mb 压缩)二进制文件,你可以直接下载并尝试运行,如果这足以诊断问题。

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

4

1 回答 1

0

你需要编写一个最小的 Cocoa 包装器,这样 OS X 就不会因为SIGKILL你没有正确启动。我会用那个包装器给你一个拉取请求。

于 2013-06-07T07:54:59.623 回答