我使用SDL Framework设置了应用程序,它可以正常运行而没有任何错误。
但是,当我尝试启动程序时,即使在输入简单的main方法之前,程序也会立即终止。这里的代码:

#include "CApp.h"
#include <iostream>

int main(int argc, char* argv[]) {
    std::cout << "Hello";
    return 0;
}

我知道SDL在SDLMain.m中实现了自己的主要功能,并手动启动了我的主要功能。我认为我在STLMain.m中找到了执行我的主要功能的代码(第222ff行):
/* Create SDLMain and make it the app delegate */
sdlMain = [[SDLMain alloc] init];
[NSApp setDelegate:sdlMain];

/* Start the main event loop */
[NSApp run];

当我在[NSApp run]上设置断点并向前移动时,程序终止。

最佳答案

SDL #definemain转换为SDL_main,以便透明地使用其自己的main实现。由于您未包含任何SDL header ,因此您的范围内没有该宏。它应该可以简单地将main重命名为SDL_main或包含SDL header (例如SDL.h)。

08-19 12:42