找不到MSVCR90.DLL
我知道已经有人问过这样的问题,但情况有点不同,关于这个问题的所有答案对我都不起作用 我试图在VS2008中编译一些C代码,但它没有创建exe。另外,当我尝试使用f5运行它时,我得到: 此应用程序无法启动 因为找不到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
我做了一些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++->运行时库下:表示多线程调试(对于调试版本)或多线程调试(对于发布版本)
- 确保这些库是使用与应用程序相同的visual studio版本编译的
- 将这些项目更改为使用静态运行时:C/C++->代码生成->运行时库:/MT或MTd(与上面的#4相同)
- 如果仍然存在某些特定错误,请尝试告诉链接器忽略某些库:转到链接器->忽略特定库,然后放入要忽略的库。这在“libcmt.lib”或“libcmtd.lib”中最常见。同样重要的是要知道,以“d”结尾的lib通常是调试版本。如果您正在创建一个发布版本,并且得到“已经在libcmtd.lib中定义”,这意味着您正在某个地方将发布库链接到调试库
查看是否有帮助。如果删除与.exe关联的清单文件,则会出现相同的错误
MSVCR90.dll未安装在system32中,而是安装在并排文件夹中,因此需要清单。转到项目设置、配置属性->C/C++->代码生成,将运行时库从多线程dll更改为多线程dll,然后尝试编译,但不会。然后将其更改为多线程调试并尝试编译,但它不会再次编译,然后您将其更改回多线程DLL,然后它应该编译并运行。我刚刚被这个问题困扰,并重新开始工作 关键是忽略调试配置的MSVCRT和MSVCR90库。设置链接器->输入->忽略特定库设置以包括以下内容:
- MSVCRT
- MSVCR90