我一直在尝试编写一个非常简单的SDL程序。我使用的是Mac OS X Lion操作系统。在Snow Leopard下我已经成功运行了SDL,但它似乎不想在lion下工作。到目前为止,我的代码如下:
#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部分,程序就可以编译,但是在SDL_SetVideoMode行接收到SIGABRT。我之前在另一个程序中看到这些注释的内容,不确定是否需要它们。
我该怎么让它工作?