找不到MSVCR90.DLL

The*_*i.9 12 c visual-studio-2008 visual-studio

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

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

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

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

Ger*_*ald 11

这听起来像是你的VS2008安装问题,或者你的DLL搜索路径有问题.安装VS2008时安装了MSVCR90.DLL,您不必安装任何其他可再发行组件包.

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

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

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


Kla*_*azt 6

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

  • .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中定义",则意味着您正在将版本库链接到调试库.