使用 TBB 时未找到 msvcp80d.dll

Posted

技术标签:

【中文标题】使用 TBB 时未找到 msvcp80d.dll【英文标题】:msvcp80d.dll not found while using TBB 【发布时间】:2009-03-25 08:47:37 【问题描述】:

我在 Visual Studio 2008 上使用 Intel TBB C++ 对应用程序进行多线程处理。当我运行可执行文件时,我收到一个对话框,提示找不到“MSVCP80D.dll”。网上有很多关于这个的东西,这让我很困惑。

请帮忙。

编辑:根据答案,我终于能够解决“缺少 dll”的问题。我已经给出了 vc8 的 TBB lib 的路径,导致依赖于 vc8 dll,这些 dll 用于 Visual Studio 2005,而不是 2008。(使用依赖(http://www.dependencywalker.com/)很容易确定可执行文件的运行时依赖关系.) 我按项目更改为依赖 vc9 dll,而不是 vc8,然后它工作正常。

要注意的另一件事是在 Windows 上使用清单文件。清单文件描述依赖关系。必须在编写应用程序时根据需要生成清单文件。

【问题讨论】:

【参考方案1】:

您可以在各个地方在线找到它们。只需对其进行病毒扫描并将其放入程序的路径中,一切都会正常工作。您可能需要多个调试 dll,您可以使用 depends32.exe 来查看您缺少的内容。

【讨论】:

调试DLL可能不合法。 这是真的,但他没有问合法性,只是问如何让它发挥作用:D 它们也可能存在漏洞...您不想从不受信任的来源安装 DLL。编辑:我的意思是像木马之类的漏洞。【参考方案2】:

MSVC80D 是 VS 2005。作为 VS2008 的一部分,您将使用 MSVC90D。

【讨论】:

【参考方案3】:

您的应用是使用调试版本编译的。 VC 运行时的调试版本不在路径中。 尝试生成发布版本。

【讨论】:

我正在从开发环境运行应用程序。我想运行调试版本。【参考方案4】:

您是否在您的开发机器上运行该程序?如果不是,您可能会收到此错误。文件名末尾的“D”表示该 DLL 是一个调试 DLL,通常不会在未安装 Visual Studio 的计算机上。你也不应该重新分发它(复制它)。您应该编译应用程序的“发布”版本并运行它。如果由于某种原因您确实无法做到这一点,并且只有一两台计算机,请尝试在该计算机上安装快速版本的 Visual Studio。

如果您在开发机器上遇到此问题,这显然是由编译器/链接器问题引起的。尝试进行干净的构建(“干净”,然后在 Visual Studio 中“构建”)。

【讨论】:

我在开发环境中运行。我也尝试过干净的构建。问题仍然存在。【参考方案5】:

好的,经过大量搜索,我偶然登陆了这个论坛http://www.codeguru.com/forum/showthread.php?t=446789,上面说我解释为“我使用的 TBB 版本不支持 VS 2008”。

但这仍然不确定。

【讨论】:

以上是关于使用 TBB 时未找到 msvcp80d.dll的主要内容,如果未能解决你的问题,请参考以下文章

未找到 msvcp100d.dll -错误 [重复]

找不到msvcp120dll啥意思

MSVCP100D.dll 丢失

应用程序无法启动,因为未找到 MSVCP100D.dll,重新安装应用程序可能有效

修复“您的计算机中缺少 MSVCP110D.dll”问题

程序无法启动,因为您的计算机缺少 MSVCP90D.dll