找不到MSVCR90.DLL

找不到MSVCR90.DLL,c,visual-studio,visual-studio-2008,C,Visual Studio,Visual Studio 2008,我知道已经有人问过这样的问题,但情况有点不同,关于这个问题的所有答案对我都不起作用 我试图在VS2008中编译一些C代码,但它没有创建exe。另外,当我尝试使用f5运行它时,我得到: 此应用程序无法启动 因为找不到MSVCR90.DLL 我做了一些Google,它说这是因为没有安装我的C++可重新分配包。所以我安装了它,重新启动了所有程序,然后再试一次。但是,唉,我还是犯了同样的错误。有人知道如何修复此问题吗?听起来可能是VS2008安装有问题,或者是DLL搜索路径有问题。MSVCR90.DLL

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

我试图在VS2008中编译一些C代码,但它没有创建exe。另外,当我尝试使用f5运行它时,我得到:

此应用程序无法启动 因为找不到MSVCR90.DLL


我做了一些Google,它说这是因为没有安装我的C++可重新分配包。所以我安装了它,重新启动了所有程序,然后再试一次。但是,唉,我还是犯了同样的错误。有人知道如何修复此问题吗?

听起来可能是VS2008安装有问题,或者是DLL搜索路径有问题。MSVCR90.DLL在安装VS2008时已安装,您不必安装任何其他可再发行的软件包

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

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


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

在“常规”选项卡下,以下是一些检查项目配置的内容:

  • .1配置类型-在您的案例中为exe
  • .2 MFC的使用:如果这是一个MFC应用程序,那么如果您这样做,它可能会更便于移植:在静态库中使用MFC
  • .3使用ATL-如果不使用ATL(或不确定),则表示不使用ATL
  • .4在C/C++->运行时库下:表示多线程调试(对于调试版本)或多线程调试(对于发布版本)
如果您收到的特定链接器错误表明某些内容已定义: 这意味着您的应用程序的某些部分(链接到exe的独立LIB)是使用不同的运行时链接构建的:

你可以:

  • 确保这些库是使用与应用程序相同的visual studio版本编译的

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

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


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


查看是否有帮助。

如果删除与.exe关联的清单文件,则会出现相同的错误


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

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

我刚刚被这个问题困扰,并重新开始工作

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

  • MSVCRT
  • MSVCR90

它应该位于visual studio 2008运行时库中。对安装之后,openoffice更新会起作用。

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