SDL_Image IMG_Load在png上失败:"加载libpng16-16.dll失败:"

a s*_*ich 6 windows png load sdl-image sdl-2

每当我尝试使用SDL_Image的IMG_Load函数加载PNG时,它都会给出错误Failed loading libpng16-16.dll:.我在正确的路径中有所有正确的dll,我可以使用SDL_Image的其他部分,但由于某种原因,它无法加载libpng dll.我怎样才能解决这个问题?任何帮助表示赞赏.

Cin*_*lue 12

它似乎libpng16-16.dll依赖于zlib1.dllMinGW-w64(32位).尝试将zlib包含在您的依赖项中 - 将DLL包含在运行可执行文件的文件夹中.


Gig*_*igi 6

请参阅我的文章“ SDL2:使用 SDL_image 加载图像”:

如果要从 Visual Studio 运行,请确保图像与 main.cpp 文件位于同一文件夹中;否则,如果您直接从可执行文件运行,则图像应与其位于同一文件夹中。

不用说,我在这里写的关于图像的内容也适用于 DLL。

  • 在该博客文章的项目中,我有 libjpeg-9.dll、libpng16-16.dll、libtiff-5.dll、libwebp-4.dll 和 zlib1.dll,以及明显的 SDL2.dll 和 SDL2_image.dll。如果您只包括 libpng,我建议您尝试包括所有其余的 - 可能存在您和我不知道的依赖项。其实我刚刚查了一下,libpng需要zlib:http://www.libpng.org/pub/png/libpng.html (12认同)
  • 这就是问题所在。我将 libjpeg-9.dll、zlib1.dll 和 libtiff-5.dll 复制到所需目录中,现在它可以正常工作了。谢谢你。 (4认同)