SDL ld返回1个退出状态

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)

我正在编写一个示例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;
}

这是一个链接器错误。您没有将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完成了任务。我真是太感谢你了,这让我烦了很长时间。再次感谢