使用 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的主要内容,如果未能解决你的问题,请参考以下文章