【问题标题】:How to fix "SDL_image could not initialize!"?如何修复“SDL_image 无法初始化!”?
【发布时间】:2019-03-07 07:36:00
【问题描述】:

我正在学习如何使用 C++ 进行 SDL2 编程的教程。我在窗户上。我的电脑是64位的。出于兼容性原因,我正在使用 32 位库,并且因为我正在遵循一个教程 [指示使用 32 位版本]。

我尝试用我的编译器调用 SDL 图像库,得到以下错误:

“SDL_image 无法初始化!SDL_image 错误:加载 libpng16-16.dll 失败:找不到指定的过程”

(我把我能找到的所有 Dll 都放入 MySysWow64 我从来不擅长连接编译器,所以我可能做错了[我正在使用代码块])

它还会产生以下弹出窗口:

“SDL 教程:SDL2_TEST1.exe - 未找到入口点

在动态链接库C:\windows\SYSTEM32\libpng16-16.dll中找不到过程入口点inflateValidate"

教程指示我将 SDL 映像的 DLL 放入 MySysWow64 目录;我以为我做到了。这可能是什么原因造成的,我该如何排除故障才能解决?

PS:我使用的是windows10,不确定是否相关,但既然可能是,这就是我包含它的原因;我认为这是一个好主意,如果不是,我对此完全灵活。我只想问最好的问题

【问题讨论】:

  • 您好,我很久没有使用 SDL,但根据过去的经验,您可能还没有初始化 SDL 引擎。请看看这个wiki.libsdl.org/SDL_Init 我希望这能有所帮助。
  • 会的,我已经学了一段时间了,但总是遇到一些问题
  • 我明天必须再次检查代码(我现在正在床上检查我的手机)
  • +Maurizio Benedetti ,我要检查代码,按时进行(或者至少 stackexchange 说我昨天说“明天”)
  • 注意:我给制作教程的人发了电子邮件:我的错误;他们说这是一个“链接器错误”,我什至不需要源代码。 (因为我通过电子邮件向他们发送了他们的“未经作者事先许可,请勿复制”源代码的电子邮件,以帮助进行错误调试)

标签: c++ dll compiler-errors windows-10 32bit-64bit


【解决方案1】:

在将 zlib1.dll(版本 1.2.8)从 SDL2_ttf-devel-2.0.14 解压缩到我的编译器的 bin 文件夹后,使用 SDL 遇到相同的错误,就像解压缩到您的 MySysWow64 文件夹一样,我不太倾向于这样做做。搜索错误“程序入口点inflateValidate”会拉出很多zlib1.dll冲突结果。 SDL2_image-devel-2.0.4 中的 zlib1.dll (1.2.11) 在 1.2.8 版本生成您报告的错误的情况下工作。删除 zlib1.dll 并找到一个更新的版本,同时考虑到您的 PATH 中可能有另一个冲突的 zlib1.dll 已经在其他地方导致错误,请检查您的 PATH 以获取 DLL 的其他副本。

【讨论】:

    【解决方案2】:

    我通过更新 PATH 的条目顺序解决了这个问题。错误消息暗示我有这些文件的多个版本。我重新排序了 PATH 值,以便 SDL 和 SDL_image 库是前两个条目,这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2019-05-21
      • 2014-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 2019-12-13
      相关资源
      最近更新 更多