2011-02-04 90 views
1

我想在使用MinGW和eclipse的windows上构建一个项目。 我使用SDL库,但是当我尝试complie它,我得到的错误未定义引用'SDL_main'

g++ -Wl,-subsystem,windows -oplikoo.exe src\mouse.o src\camera.o src\Timer.o src\Pegs.o src\Graphics.o src\FPS.o src\Ball.o -lmingw32 -lSDLmain -lSDL.dll -lSDL_image -lSDL_mixer 
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../libSDLmain.a(SDL_win32_main.o): In function `console_main': 
/Users/hercules/trunk/SDL-1.2/./src/main/win32/SDL_win32_main.c:315: undefined reference to `SDL_main' 

据我了解,主要有有int main(int argc, char *argv[])签名,并在该文件#include <SDL.h>,但它仍然无法正常工作。

回答

2

main.cpp中没有将src目录,而不是被编译

2

扫描在你的编译行那里,我注意到你正在试图与直接“SDL.dll”链接。这不是你想要的。你应该链接到libSDL.la(假设你正在使用mingw)。

此外,我不知道这是否会影响这里任何东西,但我听说你是“应该”链接“SDL”最后。

+0

我一直直接与SDL或SDL.dll链接,直到最后,它只需要在SDLmain之前是mingw32,而在SDLmain之前是SDL – loosecannon 2011-02-06 06:59:17

5

这只是发生在我身上。当我开始定义主与ARGS参数:

int main(int argc, char* args[]) 

编译器错误文远。

+1

但是他说他已经尝试过......并且已经回答了这个问题。 – 2013-07-23 22:44:50