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