最近、CodeBlocks10.05を使用してSDLを使用することにしました。私は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'|
コンパイルしようとすると。
このWebサイトや他のチュートリアル(主にLazyFooとCodeBlocks wikiのチュートリアル)で多くの質問を検索しましたが、解決策が見つからないようです。
- C:\ SDL \ SDL-1.2.15 \ includeが[コンパイラ]タブ(ディレクトリの検索)に追加されました
- C:\ SDL \ SDL-1.2.15\libが[リンカー]タブに追加されました
- ライブラリlibmingw32.a、libSDLmain.a、libSDL.dll.aはこの順序でリンクされています
- CodeBlocksインストールディレクトリのMinGW\libフォルダにあるlibmingw32.a
- SDL.dllは、System32フォルダーとプロジェクトフォルダーの両方にあります。
CodeBlocks wikiのチュートリアルに従おうとすると、(新しいSDLプロジェクトを作成するときに)指定されたディレクトリにSDL.hが見つからないと言われました。
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