我正在使用英特尔TBB C ++在visual studio 2008上多线程处理应用程序。当我运行可执行文件时,我得到一个对话框,说“找不到MSVCP80D.dll”。关于这一点,网上有很多东西让我感到困惑。
请帮忙。
编辑:基于答案,最后我能够修复“dll missing”问题。我给了一个vc8的TBB lib路径,导致依赖于vc8 dll,它与visual studio 2005一起使用,而不是与2008一起使用。(使用depends(http://www.dependencywalker.com/)很容易确定运行时依赖性一个可执行文件。)我改变项目依赖于vc9 dll,而不是vc8然后它工作正常。需要注意的另一件事是在Windows上使用清单文件。清单文件描述依赖关系。必要时,必须在编写应用程序时生成清单文件。
答案 0 :(得分:1)
MSVC80D是VS 2005.作为VS2008的一部分,你将拥有MSVC90D。
答案 1 :(得分:1)
您可以在各个地方在线找到它们。只需扫描它以查找病毒并将其放入程序的路径中,一切都应该正常工作。您可能需要多个调试dll,您可以使用depends32.exe查看您缺少的内容。
答案 2 :(得分:0)
您的应用程序是使用调试版本编译的。 VC运行时的调试版本不在路径中。 尝试生成发布版本。
答案 3 :(得分:0)
您是否在开发计算机上运行该程序?如果不是,您可能会收到此错误。文件名末尾的“D”表示DLL是调试DLL,通常不在没有安装Visual Studio的计算机上。你也不应该重新发布它(复制它)。您应该编译应用程序的“发布”版本并运行它。如果由于某种原因你真的不能这样做,并且它只有一两台计算机,那么尝试在该计算机上安装Visual Studio的快速版本。
如果您在开发计算机上遇到此问题,则显然可能是由编译器/链接器问题引起的。尝试做一个干净的构建(“干净”,然后在Visual Studio中“构建”)。
答案 4 :(得分:0)
好的,经过大量的搜索,偶然的机会,我登陆了这个论坛http://www.codeguru.com/forum/showthread.php?t=446789,其中我说的是“我正在使用的TBB版本不支持VS 2008”。
但这还不确定。