【问题标题】:Compile for release编译发布
【发布时间】:2012-08-07 23:11:43
【问题描述】:

我正在编写一个简单的 pong 应用程序,虽然它还没有完成,但我会撒谎以弄清楚如何编译它以供发布。我没有收到任何错误,并且我链接了 SDL、SDLmain、SDL_image、SDL_ttf,但是当其他计算机上的人尝试运行它(调试和发布)时,它会像丢失文件一样关闭。我把 SDL.dll、SDL_image.dll、SDL-ttf.dll 连同我在程序中使用的图像一起放在那里,它在我的电脑上运行良好,所以说我缺少一个文件......但是那会是什么?

编辑:

终于在 30 分钟后我想通了:当包含 SDL_image.dll 时,您还必须包含 SDL_image.dll 的依赖项:zlib1.dll、libjjpeg-x.dll、libpng..etc

【问题讨论】:

  • 使用 Dependency Walker 之类的东西来确定您的应用需要哪些 DLL 文件。
  • 这是一个非常有用的程序,但显然这不是我的问题。所以你确实通过缩小我遗漏了一个 dll 的可能性让我更接近了。
  • 我希望你能把它作为答案,我会 +1
  • 欢迎来到 DLL 地狱,我的朋友。

标签: c++ dll compilation release sdl


【解决方案1】:

解决此类问题(如果与 DLL 相关)的一个好方法是使用Dependency Walker。这将向您显示可执行文件的所有依赖项,以及依赖项的依赖项。

如果您在目标平台上运行它,它将突出显示需要但不可用的 DLL,从而更容易了解您的可执行文件无法运行的原因。

【讨论】:

    猜你喜欢
    • 2020-07-08
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    相关资源
    最近更新 更多