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

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

Solutions Collecting From Web of "SDL_Image IMG_Load在png上失败:“加载失败libpng16-16.dll:”"

查看我的文章“ SDL2:使用SDL_image加载图像 ”:

如果要从Visual Studio运行,请确保图像与main.cpp文件位于相同的文件夹中; 否则,如果你直接从可执行文件运行,图像应该与它在同一个文件夹中。

不用说,我在这里写的关于这个图像也是为了DLL。

看来libpng16-16.dll在MinGW-w64(32位)上依赖于zlib1.dll 。 尝试将zlib包含到您的依赖项中 – 将DLL包含在可执行文件所在的文件夹中。

VS不会在执行目录以外的任何地方搜索dll,因此您可能需要将该dll复制到解决方案路径上的Debug /目录。

此链接向您展示了如何设置SDL库/ libpng16-16.dll以供compiler.exe(示例代码之前的最后一步)

yourProgram proprety页面 – >构建事件 – >构建后事件
在我的情况下,我有
复制“C:\ Users \ MehdiB \ Desktop \ C Program \ Library \ SDL2-devel-2.0.4-VC \ SDL2-2.0.4 \ lib \ x86 \ SDL2.dll”“$(OutDir)SDL2.dll”;
复制“C:\ Users \ MehdiB \ Desktop \ C Program \ Library \ SDL2_image-devel-2.0.1-VC \ SDL2_image-2.0.1 \ lib \ x86 \ SDL2_image.dll”“$(OutDir)SDL2_image.dll”;
复制“C:\ Users \ MehdiB \ Desktop \ C Program \ Library \ dll \ libjpeg-9.dll”“$(OutDir)libjpeg-9.dll”

在这里你可以得到这个DLL