Я пытался заставить работать очень простую программу SDL. Я использую Mac OS X Lion. У меня есть SDL для работы в Snow Leopard, но, похоже, он не хочет работать со львом. Пока у меня есть это:
#include <iostream>
#include "SDL/SDL.h"
using namespace std;
/*
#ifdef main
# undef main
#endif
*/
int main( int argc, char* args[] )
{
SDL_Surface* hello = NULL;
SDL_Surface* screen = NULL;
SDL_Init( SDL_INIT_EVERYTHING );
screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
hello = SDL_LoadBMP( "hello.bmp" );
SDL_BlitSurface( hello, NULL, screen, NULL );
SDL_Flip( screen );
SDL_Delay( 2000 );
SDL_FreeSurface( hello );
SDL_Quit();
return 0;
}
Когда я пытаюсь скомпилировать этот код (в Xcode 4.1), он выдает мне эту ошибку:
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
(maybe you meant: _SDL_main)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Если я раскомментирую материал #ifdef, который я прокомментировал в настоящее время, программа компилируется, но затем получает SIGABRT в строке SDL_SetVideoMode. Этот комментарий, который я только что увидел в другой программе, я не уверен, должен ли я иметь его или нет.
Как мне заставить это работать?