SDL ld 返回 1 退出状态

发布于 2024-11-07 19:45:14 字数 548 浏览 0 评论 0原文

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

im writing a sample SDL program, and I just wrote the simplest program, but i get the following error because of my SDL_pollevent() function:

Test.cpp:(.text._ZN4CApp9OnExecuteEv[CApp::OnExecute()]+0x41): undefined reference to `SDL_PollEvent'
collect2: ld returned 1 exit status

and the code is:

int OnExecute()
{
    if(OnInit()==false)
        return -1;
    SDL_Event Event;
    while(Running)
    {
        while(SDL_PollEvent(&Event))
        {
            OnEvent(&Event);
        }
            OnLoop();
        OnRend();
    }
    OnClean();
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

江湖彼岸 2024-11-14 19:45:15

首先,确保您包含 SDL.h,它在大多数平台上看起来像这样:

#include "SDL.h"

如果您使用 Xcode 在 Mac 上构建,则需要使用它:

#include <SDL/SDL.h>

然后确保您已链接到 SDL框架:

  • 如果您使用的是 Visual Studio (Windows),请右键单击该项目并调出“属性”,然后在“配置属性”>“框架”下选择“框架”。链接器>输入,确保Additional Dependency为SDL.lib SDLmain.lib
  • 如果您使用的是 Xcode (Mac),请找到 SDL.framework(可能位于 /Library/Frameworks 下)并将其拖到项目的 Frameworks 文件夹中。
  • 如果您从命令行调用 GCC,请通过将 -lSDL -lSDLmain 添加到命令行来链接到 libSDL.a 和 libSDLmain.a。

First, make sure you are including SDL.h, which will look like this on most platforms:

#include "SDL.h"

If you're building on a Mac with Xcode, you'll want to use this instead:

#include <SDL/SDL.h>

Then make sure you've linked against the SDL framework:

  • If you're using Visual Studio (Windows), right-click the project and bring up the Properties, then under Configuration Properties > Linker > Input, make sure Additional Dependencies is SDL.lib SDLmain.lib.
  • If you're using Xcode (Mac), find SDL.framework (probably under /Library/Frameworks) and drag it to your project's Frameworks folder.
  • If you're invoking GCC from the command-line, link to libSDL.a and libSDLmain.a by adding -lSDL -lSDLmain to your command-line.
听不够的曲调 2024-11-14 19:45:14

这是链接器错误。您没有正确地将 SDL 库链接到您的项目。通常您需要将 -lSDL 添加到链接器中。如果您使用的是 Windows,我相信您也必须添加 -lSDLmain 。确保您的编译器知道在哪里可以找到这些文件(正确设置库路径)。如果您不知道如何执行此操作,请查看本教程<中的系统和 IDE 特定安装说明< /a>.

我假设 SDL_Init() 是在 OnInit() 中调用的?否则你的程序将无法正确运行。

This is a linker error. You are not correctly linking the SDL libraries to your project. Usually you would need to add -lSDL to your linker. If you are using Windows I believe you have to add -lSDLmain too. Make sure your compiler knows where to find these files (set your library path correctly). If you don't know how to do this, check the system and IDE specific installation instructions in this tutorial.

I assume that SDL_Init() is called within OnInit()? Otherwise your program will not run correctly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文