我一直在試圖讓一個超級簡單的SDL程序正常工作。我正在使用Mac OS X Lion。我有SDL在雪豹工作,但它似乎並不想在獅子工作。到目前爲止,我有這樣的:使用XCode 4在Mac OS X Lion上安裝SDL
#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。我剛剛在另一個程序中看到的那些評論內容,我不確定我是否應該擁有它。
我該如何得到這個工作?
你能提供XCode發出的命令來編譯/鏈接程序嗎? (擺脫#ifdef的東西,BTW) –
@BrettHale我不知道我怎麼會找到這個命令。它使用命令行應用程序模板與C++ Edit的默認值:認爲我找到了它:http://pastebin.com/zprm01Kp – Cole