代码之家  ›  专栏  ›  技术社区  ›  Adrian Grigore

我的程序在到达main()之前就崩溃了吗?

  •  0
  • Adrian Grigore  · 技术社区  · 17 年前

    我正试图将一个包含SDL和WxWidgets的项目移植到具有XCode 3.1.2的MacOS X。这个项目相当大,但我最终成功地编译了它。但是,它在启动后立即退出,并显示消息“MyApplication已退出,状态为99”。

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

    我还为所有三个主要函数行添加了断点。但是,调试器仍然不会中断,应用程序在启动后仍然会立即退出。

    (gdb)运行[切换到进程94140

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

    调试器已停止。程序已退出

    4 回复  |  直到 12 年前
        1
  •  5
  •   diciu    17 年前

    SDL对你的主函数进行了一些破解。 很可能你的主代码从未被访问过。

    试着打破“开始”并从那里开始——AFAIK“开始”是任何大男子主义可执行文件的入口点。

    你看到的看起来像是你的二进制退出,错误代码为“99”。 您可能希望在SDL或WX中查找错误代码99。

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

        2
  •  1
  •   dirkgently    17 年前

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

        3
  •  0
  •   Adrian Grigore    17 年前

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

        4
  •  0
  •   cdespinosa Martin Cote    17 年前

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

    不过,我不得不说,我不建议通过移植你不熟悉的源代码来学习新工具。你很难从SDL/WxWidgets的奇怪期望中分辨出学习Xcode会带来什么问题。