首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到MSVCR90.DLL

找不到MSVCR90.DLL
EN

Stack Overflow用户
提问于 2008-11-16 03:03:05
回答 7查看 72.2K关注 0票数 14

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

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

由于找不到MSVCR90.DLL,此应用程序无法启动。

我做了一些googling,它说这是因为我的c++可再发行包没有安装。所以我安装了它,重新启动了所有程序,然后再试一次。但唉,我还是犯了同样的错误。有人知道怎么解决这个问题吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-11-16 03:39:15

这听起来要么是VS2008安装的问题,要么是DLL搜索路径的问题。安装VS2008时安装MSVCR90.DLL,不需要安装任何额外的可再发行包。

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

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

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

票数 12
EN

Stack Overflow用户

发布于 2008-11-16 03:44:49

下面是要检查项目配置的一些东西--在general选项卡下:

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

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

您可以:

  • 确保这些库是用与应用程序相同版本的visual studio编译的。
  • 将这些项目更改为使用静态运行时: C/C++ ->代码生成->运行时LIbrary: /MT或MTd (与上面的#4相同)
  • 如果您仍然有一些特定的错误,请尝试告诉链接器忽略某些库:转到linker ->,然后放入您想忽略的库中。对于'libcmt.lib‘或'libcmtd.lib’,这是最常见的。同样重要的是要知道,以'd‘结尾的lib通常是调试版本。如果您正在创建一个版本构建,并且您正在获得“已在libcmtd.lib中定义”,这意味着您要将某个版本库链接到一个调试库。
票数 6
EN

Stack Overflow用户

发布于 2009-02-08 14:00:49

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/293401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档