2013-08-09 5 views
1

Я установил свое приложение с SDL Framework и работает без ошибок. Но когда я пытаюсь запустить свою программу, он немедленно прекращается, даже до ввода моего простого основного метода. Вот код:SDL не может найти свою основную функцию

#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] и сделать шаг вперед программа завершается.

+0

Это не имеет никакого отношения к Xcode. Кроме того, нет, SDL не называет 'main()'. Он вызывается ОС при запуске приложения. –

ответ

3

SDL #define s main до SDL_main для того, чтобы прозрачно использовать свою собственную реализацию main. Поскольку вы не включали заголовки SDL, у вас нет этого макроса. Он должен работать, чтобы просто переименовать ваш main в SDL_main или включить заголовок SDL, такой как SDL.h.

+0

'SDL.h' находится в' CApp.h'included. Я решил проблему теперь после того, как я снова добавил исходные файлы SDLMain. Кажется, я сделал что-то там, чего я не должен был делать. –

Смежные вопросы