MinGW "undefined reference to IMG_Load/IMG_Init/IMG_Quit" LazyFoo

MinGW "undefined reference to IMG_Load/IMG_Init/IMG_Quit" LazyFoo

我将使用 MinGW g++ 编译器(使用控制台)完成 LazyFoo 的 C++ SDL2 教程。我关注了他的页面 here、step-for-step。下载他的例子后,我终于遇到了这个错误。

我在网上看到很多人都在与 SDL_Image 作斗争,但我还没有看到这个,我还没有找到任何解决方案。

(这个问题听起来很多余,但我还没有找到适用于 console-compilation 的解决方案)

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

您需要为 SDL_image 安装开发库。

您可以在这里下载它们:https://www.libsdl.org/projects/SDL_image/ (查看标题 "Development libraries" 下)。

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

我遇到了同样的问题,解决方案是在链接器参数中包含 SDL2main 库。

对于 Dev-C++ IDE,您可以按照以下说明操作:

Get SDL or SDL2 working correctly with Dev-C++

我在 linux 遇到过这个问题。解决方案很简单。 添加到链接器:

-lSDL2_image -g `sdl2-config --cflags --libs`