小编Pri*_*ver的帖子

对'SDL_main'的未定义引用

我最近决定尝试使用CodeBlocks 10.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'|
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它.

我已经搜索了本网站上的许多问题和其他教程(主要是关于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.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();
}
Run Code Online (Sandbox Code Playgroud)

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(); …
Run Code Online (Sandbox Code Playgroud)

c++ sdl codeblocks

6
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

codeblocks ×1

sdl ×1