Неопределенная ссылка на 'SDL_main'

Недавно решил попробовать работать с SDL с помощью CodeBlocks 10.05. Я начал с учебника на http://www.sdltutorials.com/sdl-tutorial-basicsи старался следовать ему. К сожалению, я сталкиваюсь с:

..\..\..\..\..\..\SDL\SDL-1.2.15\lib\libSDLmain.a(SDL_win32_main.o):SDL_win32_main.c|| undefined reference to `SDL_main'|

, когда пытаюсь его скомпилировать.

Я просмотрел множество вопросов на этом веб-сайте и в других руководствах (в основном, в руководстве по LazyFoo и вики CodeBlocks) и не нашел решения.

  • C:\SDL\SDL-1.2.15\include добавлено во вкладку Compiler (Search Directorys)
  • C:\SDL\SDL-1.2.15\lib добавлено во вкладку Linker
  • Библиотеки libmingw32.a, libSDLmain.a, libSDL .dll.a связаны в этом порядке
    • libmingw32.a из папки MinGW\lib в каталоге установки CodeBlocks
  • SDL.dll находится как в папке System32, так и в папке проекта

При попытке следовать руководству на вики CodeBlocks я сообщил, что SDL.h не может быть найден в данном каталоге (при создании нового проекта SDL).

CApp.cpp

#include "CApp.h"
#include "SDL\SDL.h"

CApp::CApp(){
    Surf_Display=NULL;

    Running=true;
}

int CApp::OnExecute(){
    if (OnInit()==false){
        return -1;
}

SDL_Event Event;

while (Running){
    while (SDL_PollEvent(&Event)){
        OnEvent(&Event);
    }
    OnLoop();
    OnRender();
}

OnCleanup();
return 0;
}

int main(int argc, char* argv[]){
    CApp theApp;

    return theApp.OnExecute();
}

CApp.h

#ifndef CAPP_H_INCLUDED
#define CAPP_H_INCLUDED
#include "SDL\SDL.h"

class CApp{
    private:
        bool Running;
        SDL_Surface* Surf_Display;

    public:
        CApp();
        int OnExecute();

    public:
        bool OnInit();
        void OnEvent(SDL_Event* Event);
        void OnLoop();
        void OnRender();
        void OnCleanup();
};



#endif // CAPP_H_INCLUDED

6
задан genpfault 29 May 2012 в 18:02
поделиться