【问题标题】:Correct command line parameters for gcc compilation of SDL更正 SDL 的 gcc 编译的命令行参数
【发布时间】:2014-08-19 06:04:38
【问题描述】:

我最近开始了 SDL2.0 编程。 我做了很多研究并尝试了所有方法,但我仍然得到所有 SDL 函数的“未定义引用”错误:

undefined reference to `SDL_Init'|
undefined reference to `SDL_GetError'|
undefined reference to `SDL_Quit'|
||=== Build finished: 3 errors, 0 warnings ===|

关于那个简单的测试程序:

#include <stdlib.h>
#include <stdio.h>
#include "SDL.h"

int main(int argc, char* argv[])
{
  if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) != 0) {
    fprintf(stderr, "\nUnable to initialize SDL:  %s\n", SDL_GetError());
    return 1;
  }
  atexit(SDL_Quit);

  return 0;
}

如果我不得不猜测问题是由于错误的命令行语法而发生的。 在这种情况下,正确的应该是什么?

【问题讨论】:

  • @Jayesh 我刚刚做了。它继续出现相同的错误。也许是我的英语和对一些奇怪术语的理解。我怀疑这样的链接实际上可以帮助我:(
  • 你能提供你的链接器设置吗?
  • @Jayesh Only pkg-config --libs gtk+-2.0 我不久前就清除了它们。
  • 我的意思是显示你的编译器设置,你能显示链接器设置吗?另外我认为这将使用WinMain 作为入口点,而您已将main 作为入口点。在此处查找更多设置lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/codeblocks/…

标签: c gcc windows-7 sdl codeblocks


【解决方案1】:

您没有正确链接到 SDL 库。

在其他链接器选项中添加以下行

-lSDL -lSDLmain
mingw32
SDLmain
SDL

您还需要检查设置以了解如何在代码块中编译 SDL

http://wiki.codeblocks.org/index.php?title=Using_SDL_with_Code::Blocks http://lazyfoo.net/SDL_tutorials/lesson01/windows/codeblocks/

如果还不算太晚,那么从一开始就尝试如何在代码块中设置 SDL 并成功运行它?下面的链接为您提供了它的确切步骤。

http://www.dreamincode.net/forums/topic/57275-setting-up-codeblocks-to-work-with-sdl/

【讨论】:

  • 呃..也许为时已晚。我做了这一切。我什么都试过了。我得到了 5 个不同的教程,我不知道该选择哪一个。有些与 SDL 2.0 无关,有些没有描述所有内容,不同的方式......它搞砸了。
  • 如果你有时间,也许你可以通过 Team Viewer 看看?那太好了。
  • 可能有点奇怪。 :x
  • @Edenia 你用过Skype吗?
  • @Edenia psp-gen?是你的 Skype 名字吗?
【解决方案2】:

您可能未将 SDL2 正确链接到您的 CodeBlocks 项目,并且在您的代码中未正确引用 SDL2。

1: 转到“构建选项”菜单中的“链接器选项”,并确保您已将这些库添加到您的项目中,如下所示: Library's to include in linker options

重要!:在添加/更改库之后运行项目之前保存项目。

2: 变化:

#include "SDL.h"

到这里:

#include <SDL2/SDL.h>

如果您在编译和运行它时仍然遇到问题,很可能是您的 SDL2 文件未正确放置在编译器的文件夹中,或者您使用的 gcc 版本缺少一些工具。

这些 Youtube 视频非常详细地解释了一切:

1:https://www.youtube.com/watch?v=x0LUf7Ibpi0

2:https://www.youtube.com/watch?v=EtUw_7CvRRo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 2014-10-19
    相关资源
    最近更新 更多