2009-02-24 25 views
0

我正在尝试使用XCode 3.1.2将包括SDL和WxWidgets的项目移植到MacOS X.该项目相当大,但我终于成功地编译了它。但是,在消息“MyApplication已退出状态99”后立即退出。在到达main()之前,我的程序是否崩溃?

出于调试目的,我改变了我的主要功能如下所示:

int main(int argc, char *argv[]) 
{ 
    cout <<"hello world"; 
    cout <<"and goodbye"; 
    throw "test"; 
} 

我还添加了断点,所有三个主要功能线。但是,调试器仍然不会中断,应用程序在启动后仍然会退出。

调试控制台输出如下:

(GDB)运行[切换处理94140 本地线程0x3607]正在运行...

调试器停止。找不到test.xml !

调试器停止。计划与 状态值退出:99(GDB)

我不知道是什么文件“找不到的test.xml”指的是,为什么Xcode是在第一时间寻找它,或者如果它是与我的问题有关。

这是我的第一个XCode项目,所以我对如何继续无能为力。任何提示将不胜感激。

回答

0

最后,我发现从错误地包含的第三方库的单元测试文件中有一个不同的main()函数。

1

您可能没有正确的项目设置。你选择了哪个项目模板?

5

SDL在你的主要功能中使用了一些黑客技术。 您的主代码可能永远不会到达。

试着打破“开始”并从那里开始步 - AFAIK“开始”是任何男子气概可执行文件的入口点。

你所看到的看起来像你的二进制退出错误代码“99”。 您可能想要在SDL或WX中查找错误代码99。

稍后从SDL站点编辑::头文件“SDL_main.h”使用函数宏将您的main()函数重新映射到SDL_main()函数。

0

我希望test.xml是该单元测试的数据文件,它可能已经预期它在一个默认目录中。 Project>编辑Active Executable,并确保启动时的工作目录是代码期望的目录(根目录,项目目录或可执行目录)。

不过,我不得不说,我不建议通过移植您不熟悉的源代码来学习新工具。您将很难分辨出由于SDL/WxWidgets的奇怪期望导致的问题,学习Xcode会产生哪些问题。

+0

到目前为止这是一个粗略的方法,但我认为最糟糕的事情已经快要结束了。整个项目基于开源的跨平台库,这就是为什么我自己试图做到这一点。只要我自己的代码正在执行并且调试器能够正常工作,我希望没问题。 – 2009-02-25 08:59:17

相关问题