我正在尝试使用XCode 3.1.2将包含SDL和WxWidgets的项目移植到MacOS X.该项目相当大,但我终于成功编译了。但是,它在启动后立即退出,并显示消息“MyApplication已退出状态为99”。
出于调试目的,我将主要功能更改为:
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 :(得分:5)
SDL使用了一些主要功能。 很可能你的主要代码永远不会到达。
尝试打破“开始”并从那里踩到 - AFAIK“start”是任何男子气概可执行文件的入口点。
您看到的内容看起来像二进制退出,错误代码为“99”。 您可能希望在SDL或WX中查找错误代码99。
稍后编辑:来自SDL站点的:头文件“SDL_main.h”使用函数宏将main()函数重新映射到SDL_main()函数。
答案 1 :(得分:1)
您可能没有正确的项目设置。您选择了哪个项目模板?
答案 2 :(得分:0)
最后我发现在我错误包含的第三方库的单元测试文件中有一个不同的main()函数。
答案 3 :(得分:0)
我希望test.xml是该单元测试的数据文件,它可能在默认目录中预期它。项目&gt;编辑Active Executable并确保启动时的工作目录是代码所期望的位置(根目录,项目目录或可执行目录)。
但我不得不说,我不建议通过移植您不熟悉的源代码来学习新工具。您将很难说出由于SDL / WxWidgets奇怪的期望导致的问题导致学习Xcode会出现什么问题。