应用程序无法启动,因为未找到 MSVCP100D.dll,重新安装应用程序可能有效
Posted
技术标签:
【中文标题】应用程序无法启动,因为未找到 MSVCP100D.dll,重新安装应用程序可能有效【英文标题】:Application has failed to start because MSVCP100D.dll was not found, reinstalling app may work 【发布时间】:2011-01-12 12:04:17 【问题描述】:我对此进行了谷歌搜索,并意识到这可能有多种原因,因此我将描述我的情况。
当我的应用程序尝试加载在另一个版本的 Visual Studio (2010) 中构建的 .dll 文件时会发生这种情况,如果我在 Visual Studio 2008 上构建相同的项目,则 DLL 文件可以正常加载...
我不知道这是否重要,但 Visual Studio 2010 DLL 文件版本是基于 Windows 7 x32 构建的,而 Windows Vista 64 位与 Visual Studio 2008 相对。
【问题讨论】:
在“发布”模式(而不是“调试”模式)下重新编译您的应用程序,然后在目标机器上下载并安装适用于适当处理器架构的 Visual C++ 2010 Redistributable 包:x86, @ 987654322@。目标机器必须安装与您构建时相同版本的运行时。在本例中,它是 v10.0(来自 VS 2010)。 请参考以下两个链接:http://www.buggymind.com/305http://msdn.microsoft.com/ko-kr/library/abx4dbyh.aspx希望对您有所帮助。 【参考方案1】:如果您动态链接到 MSVC 运行时,那么您需要在将运行您的应用的每台机器上安装该运行时。
请注意,在这种情况下,您似乎链接到运行时的调试版本,分发链接到运行时调试版本的应用是不正常的。
【讨论】:
我将代码生成选项从多线程 dll 调试更改为“多线程 dll” 编译并没有解决问题,我真的不知道该看哪里 它仍然报告 100D 还是仅报告 100?如果它是 100D,你没有得到正确的选项或重新编译它;如果它是 100,那么你应该从你的 VS DVD 中获取 MSVC 运行时安装程序(或者你可以下载它)并在目标系统上运行它。 @Marko29 正如@Rup 所说,正如我在回答中所说,您需要在目标机器上安装 MSVC 版本 10 运行时。您可以从网络 (microsoft.com/downloads/en/…) 下载它,或者从您的 VS DVD 中获取它。 或者你可以从你的开发机器复制它们,c:\windows\system32。并排缓存歌曲和舞蹈已经结束。【参考方案2】:如果您不想分发运行时,则可以将 Visual Studio 中的运行时库选项(属性 -> C/C++ -> 代码生成 -> 运行时库)从 /MD 切换到 /MT 或 /MDd到 /MTd。
正如其他人所说,如果您要分发此应用程序,您应该动态或静态链接到 Runtime 库的 Release 版本,而不是 Debug 版本。
【讨论】:
【参考方案3】:只是一个相关的小建议:在 RELEASE 版本中构建和运行时不要添加任何 *248d.lib 文件。
我听从不同博客的建议,不小心添加了 *248d.lib 和 248.lib 文件。基本上在Linker → Input → Add Dependencies,确保里面没有*248d.lib文件(这里248是2.4.8版本) .
我花了好几个小时想知道为什么在发布模式下没有工作,直到我发现有两个 .lib 文件副本,一个 *248 和另一个 *248d。如果您在发布模式下包含任何 d 文件,您将遇到 DLL 问题。
【讨论】:
以上是关于应用程序无法启动,因为未找到 MSVCP100D.dll,重新安装应用程序可能有效的主要内容,如果未能解决你的问题,请参考以下文章
Qt Designer 启动时出错:代码执行无法继续,因为未找到 MSVCP140_1.dll