SDL ld返回1个退出状态
我正在编写一个示例SDL程序,我只编写了最简单的程序,但由于我的SDL_pollevent()函数,我得到了以下错误:SDL ld返回1个退出状态,sdl,Sdl,我正在编写一个示例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)
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;
}
这是一个链接器错误。您没有将SDL库正确链接到项目。通常需要将
-lSDL
添加到链接器中。如果您使用的是Windows,我相信您也必须添加-lSDLmain
。确保编译器知道在哪里可以找到这些文件(正确设置库路径)。如果您不知道如何执行此操作,请查看中特定于系统和IDE的安装说明
我假设
SDL\u Init()
是在OnInit()中调用的?否则您的程序将无法正常运行。这是链接器错误。您没有将SDL库正确链接到项目。通常需要将-lSDL
添加到链接器中。如果您使用的是Windows,我相信您也必须添加-lSDLmain
。确保编译器知道在哪里可以找到这些文件(正确设置库路径)。如果您不知道如何执行此操作,请查看中特定于系统和IDE的安装说明
我假设SDL\u Init()
是在OnInit()中调用的?否则,您的程序将无法正常运行。首先,请确保您包含SDL.h,在大多数平台上都是这样的:
#include "SDL.h"
如果您正在使用Xcode构建Mac,您将希望改用此选项:
#include <SDL/SDL.h>
#包括
然后确保已针对SDL框架进行了链接:
- 如果使用的是Visual Studio(Windows),请右键单击项目并调出属性,然后在“配置属性”>“链接器”>“输入”下,确保其他依赖项为SDL.lib SDLmain.lib
- 如果您使用的是Xcode(Mac),请找到SDL.framework(可能在/Library/Frameworks下)并将其拖到项目的Frameworks文件夹中
- 如果要从命令行调用GCC,请通过在命令行中添加-lSDL-lSDLmain链接到libSDL.a和libSDLmain.a
首先,确保您包括SDL.h,在大多数平台上都是这样的:
#include "SDL.h"
如果您正在使用Xcode构建Mac,您将希望改用此选项:
#include <SDL/SDL.h>
#包括
然后确保已针对SDL框架进行了链接:
- 如果使用的是Visual Studio(Windows),请右键单击项目并调出属性,然后在“配置属性”>“链接器”>“输入”下,确保其他依赖项为SDL.lib SDLmain.lib
- 如果您使用的是Xcode(Mac),请找到SDL.framework(可能在/Library/Frameworks下)并将其拖到项目的Frameworks文件夹中
- 如果要从命令行调用GCC,请通过在命令行中添加-lSDL-lSDLmain链接到libSDL.a和libSDLmain.a
您的链接器命令行是什么?另外,SDL\u polleevent()
如果前面没有调用SDL\u Init()
的话,它也不能正常工作。你的链接器命令行是什么?另外,SDL\u polleevent()
如果没有之前的某个地方的SDL\u Init()
调用,将无法正常工作。You man非常感谢,-lSDL完成了工作。我真是太感谢你了,这让我烦了很长时间。再次感谢你,非常感谢,lSDL完成了任务。我真是太感谢你了,这让我烦了很长时间。再次感谢