【问题标题】:MSVCR90.DLL was not found未找到 MSVCR90.DLL
【发布时间】:2008-11-16 03:03:05
【问题描述】:

我知道已经有人问过这样的问题,但情况有点不同,关于该问题的所有答案都对我不起作用。

我正在尝试在 VS2008 中编译一些 C 代码,但它不会创建 exe。此外,当我尝试使用 f5 运行它时,我得到:

此应用程序启动失败 因为没有找到 MSVCR90.DLL。

我做了一些谷歌搜索,它说这是因为我的 c++ 可再发行包没有安装。所以我安装了它,重新启动一切并再次尝试。但是,唉,我仍然得到同样的错误。有没有人知道如何解决这个问题?

【问题讨论】:

  • 将您的项目简化为最简单的形式(例如“hello world”)并发布代码、makefile、构建日志以及您拥有的任何其他内容,我们可以为您提供帮助。否则你就是在黑暗中拍摄。
  • 投反对票,这只是你stackoverflow.com/questions/293380/…的另一个方面

标签: c visual-studio visual-studio-2008


【解决方案1】:

这听起来像是您的 VS2008 安装有问题,或者您的 DLL 搜索路径有问题。 MSVCR90.DLL 是在您安装 VS2008 时安装的,您不必安装任何额外的可再发行包。

首先,我会检查您的 PATH 环境变量,并确保其中没有会破坏某些条目的 gobbledydook,如果您在那里没有发现问题,那么我将卸载并重新安装 Visual Studio。

您也可以尝试搜索 MSVCR90.DLL(和其他类似的 DLL),并将它们移动到您的 Windows/System32 文件夹。

如果您现在只想开始,您可以做的另一件事是将项目更改为静态链接到运行时库,然后它甚至不会尝试加载该 DLL。转到您的项目设置,配置属性->C/C++->代码生成并将运行时库从多线程 DLL 更改为仅多线程(或任何不以 DLL 结尾的选项)。

【讨论】:

    【解决方案2】:

    以下是检查项目配置的一些事项 - 在常规选项卡下:

    • .1 配置类型 - exe 在您的情况下。
    • .2 MFC 的使用:如果这是一个 MFC 应用程序,它可能更便于移植:在静态库中使用 MFC。
    • .3 使用 ATL - 如果不使用 atl(或不确定),请说不使用 ATL。
    • .4 在 C/C++ -> 运行时库下:说多线程调试(调试版本)或多线程(发布版本)。

    如果您收到特定的链接器错误,说明某些内容已定义: 这意味着您的应用程序的某些部分(链接到您的 exe 的单独库)是使用不同的运行时链接构建的:

    你可以:

    • 确保这些库是使用与您的应用程序相同的 Visual Studio 版本编译的。

    • 将这些项目更改为使用静态运行时:C/C++ -> 代码生成 -> 运行时库:/MT 或 MTd(与上面的 #4 相同)

    • 如果您仍然有一些特定错误,请尝试告诉链接器忽略某些库:转到链接器->忽略特定库并放入您要忽略的库。这对于“libcmt.lib”或“libcmtd.lib”最为常见。同样重要的是要知道以 'd' 结尾的 lib 通常是调试版本。如果您正在创建发布版本并且“已经在 libcmtd.lib 中定义”,这意味着您正在某个地方将发布库链接到调试库。

    【讨论】:

      【解决方案3】:

      如果您删除与您.exe 关联的清单文件,您将收到相同的错误。

      MSVCR90.dll 未安装在 system32 中,而是安装在并排文件夹中,因此需要清单。

      【讨论】:

        【解决方案4】:

        我刚刚被这个咬了,this page 让我重新开始工作。

        关键是在调试配置中忽略 MSVCRT 和 MSVCR90 库。设置您的链接器 -> 输入 -> 忽略特定库设置以包括以下内容:

        • MSVCRT
        • MSVCR90

        【讨论】:

          【解决方案5】:

          它应该在http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en Visual Studio 2008 运行时库中。是的!安装之后,openoffice 更新就可以工作了。

          【讨论】:

            【解决方案6】:

            如果您将完成的 exe 提供给其他人,他们将需要安装最新的 Visual c 运行时才能运行它。这仅适用于发布版本 AFAIK。 Visual Studio 应在您的路径中安装所需的发布和调试运行时。该项目可能意外地为不正确的运行时版本设置了额外的依赖项。

            看看this page 是否有帮助。

            【讨论】:

              【解决方案7】:

              转到您的项目设置,配置属性->C/C++->代码生成并将运行时库从多线程 DLL 更改为多线程,然后尝试编译,但它不会。然后把它改成Multi-Threaded Debug并尝试编译,但它不会再次,然后你将它改回Multi-Threaded DLL然后它应该编译并运行。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2011-02-28
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-12-05
                • 2021-12-25
                • 2012-02-06
                • 1970-01-01
                相关资源
                最近更新 更多