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

时间:2014-01-31 05:21:47

标签: windows load png sdl-2 sdl-image

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

5 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:4)

请参阅我的文章“SDL2: Loading Images with SDL_image”:

  

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

毋庸置疑,我在这里写的关于图像的内容也适用于DLL。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

yourProgram proprety page - >构建事件 - >建设后事件
在我的情况下,我有 复制“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”

here你可以在哪里获得这个dll

答案 4 :(得分:-2)

我只是将system32和SysWOW64中的zlib1.dll替换为从其中下载的一个 https://github.com/OctaForge/OF-Windows/blob/master/bin_win32/zlib1.dll 。并且表现很好