【问题标题】:MSVCR100 on one computer, but MSVCR80 on anotherMSVCR100 在一台计算机上,但 MSVCR80 在另一台计算机上
【发布时间】:2012-09-06 07:48:13
【问题描述】:

我正在开发一个依赖 Lua 的应用程序。在我的 Windows XP 机器上,应用程序运行良好,但在我的 Windows 7 机器上,应用程序拒绝启动并抱怨找不到 MSVCR80.dll。我跟踪了dll依赖,发现在XP机器上Lua库依赖于MSVCR100.dll,而在Win 7机器上编译的Lua库依赖于MSVCR80.dll。这非常令人困惑,因为

  1. 应用程序和 lua 库是从完全相同的源构建的
  2. 我已尝试在我的 Win7 机器上卸载并重新安装 MSVC 2010 Redistributable,但无济于事。

有没有人知道如何以及从哪里开始寻找此错误的根源?我很乐意提供任何信息,但我什至不确定解决这个问题需要什么样的信息。

【问题讨论】:

    标签: msvcrt


    【解决方案1】:

    MSVCR* 依赖项由编译器添加。因此,Lua 源是否相同并不重要;您使用两个不同版本的 Visual Studio 编译了该库。

    要修复 DLL 依赖问题,请使用 Dependency Walker。

    【讨论】:

    • 我已经使用了依赖walker,这就是我设法跟踪导致问题的库(lua5.1.dll)的方法。两台机器都使用 MSVC++ 2010 Professional,如果这就是您所说的不同版本的话。
    • @abelian:机器上的编译器无关紧要;重要的是哪个编译器编译了那个 lua5.1.dll。那是 VS2005,不是 VS2010。
    【解决方案2】:

    MSVCR80.dll 是 Microsoft Visual C++ 2005 Redistributable 包的一部分。如果你安装它,它应该可以工作。

    可以在此处下载 MSVC 2005 可再发行组件:http://www.microsoft.com/en-us/download/details.aspx?id=3387

    【讨论】:

      猜你喜欢
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 2014-01-21
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多