我正在编写一个示例SDL程序,我刚刚编写了最简单的程序,但由于我的SDL_pollevent()函数,我得到以下错误:
Test.cpp:(.text._ZN4CApp9OnExecuteEv[CApp::OnExecute()]+0x41): undefined reference to `SDL_PollEvent'
collect2: ld returned 1 exit status
,代码是:
int OnExecute()
{
if(OnInit()==false)
return -1;
SDL_Event Event;
while(Running)
{
while(SDL_PollEvent(&Event))
{
OnEvent(&Event);
}
OnLoop();
OnRend();
}
OnClean();
return 0;
}
答案 0 :(得分:4)
这是链接器错误。您没有正确地将SDL库链接到项目。通常,您需要将-lSDL
添加到链接器。如果您使用的是Windows,我相信您也必须添加-lSDLmain
。确保您的编译器知道在哪里找到这些文件(正确设置库路径)。如果您不知道如何执行此操作,请查看this tutorial中的系统和IDE特定安装说明。
我假设在SDL_Init()
内调用OnInit()
?否则您的程序将无法正常运行。
答案 1 :(得分:0)
首先,确保包含SDL.h,在大多数平台上都是这样的:
#include "SDL.h"
如果您使用Xcode构建Mac,则需要使用此代码:
#include <SDL/SDL.h>
然后确保您已链接到SDL框架: