MinGW "undefined reference to IMG_Load/IMG_Init/IMG_Quit" LazyFoo MinGW“未定义对IMG_Load/IMG_Init/IMG_Quit的引用”LazyFoo

3
我正在使用MinGW g++编译器(使用控制台)遵循LazyFoo的SDL2 C ++教程。 我已经按照他的页面here,一步一步地进行了操作。 在下载了他的示例后,我终于遇到了这个错误。

enter image description here

我看到很多人在线上都在处理SDL_Image的问题,但是我还没有看到过这种情况,也没有找到任何解决方法。
  • 我已经正确加载了包含和库文件夹中的资源
  • 我已将所有必要的.dll文件复制到我的编译目标位置
  • LazyFoo提供的示例包括SDL_Image和SDL本身
(这个问题可能听起来有些冗余,但我还没有找到适用于控制台编译的解决方案)

2
你是否已经安装了SDL_image库?库文件(libSDL_image.a)在哪里? - davmac
1
我刚刚进行了搜索,甚至没有找到'libSDL_image.a',因此很明显我没有正确地(或根本没有)安装它。(我当前拥有的所有内容都来自https://www.libsdl.org/projects/SDL_image/) - Luft
我解决了这个问题,因为编译时还需要添加“-lSDL2_image”,就像图片中建议的一样。谢谢! - moldovean
3个回答

3

根据以上评论,答案似乎是:

您需要安装SDL_image的开发库。

您可以在此处下载:https://www.libsdl.org/projects/SDL_image/ (查看“开发库”标题下的内容)。

您需要确保libSDL2_image.a文件所在路径在链接器搜索路径中。一种方法是添加适当的-L参数到链接命令中。您也可以将文件放在默认库搜索路径中。


2
我在Linux中遇到了这个问题。解决方案很简单。将以下内容添加到链接器中:
-lSDL2_image -g `sdl2-config --cflags --libs`

project build otpions, switches added to Other linker options


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接