2011-09-03 19 views
20

我是新的openCV,我试着按照一些教程。一切工作正常,直到我包括:opencv2/imgproc/imgproc.hpp并使用了filter2D函数。当我启动我的程序时出现以下错误:C++ tbb_debug.dll缺失

“程序无法启动,因为您的计算机缺少tbb_debug.dll。”

在互联网上我发现这个错误与32位和64位版本的dll有关。

我正在使用64位版本的Windows,并在VS2010中创建了一个32位控制台应用程序,并且该应用程序使用了32位版本的openCV dll。 当我启动程序“dependency walker”时,我可以看到我的程序使用了所有系统DLL的64位版本(在C:\ windows \ system32 ....中)。只有opencv的dll是32位。

depenency步行者的截图:

enter image description here 感谢

+1

您必须使用32位版本的dependency walker来分析32位程序(您可以安装两个版本的dependency walker)。 –

回答

27

我假设你使用的是预编译的OpenCV 2.3二进制文件。出于某种原因,该软件包带有tbb dll,但不包含调试软件包(即使用tbb.dll,但不包含tbb_debug.dll)。您需要从英特尔here或英特尔软件suite(如果您想购买/尝试)中获得。一旦你得到了这个,你所需要做的就是把dll放在你的程序的可执行文件可以找到它的路径中。最简单的方法是将所有tbb * _debug.dll复制到OpenCV bin文件夹..../build/common/tbb/intel64/vc10/

UPDATE [May'12]:OpenCV 2.4现在不在了,确实附带了所有必需的dll!

+0

我只使用2.4.0 ...我有同样的问题 –

3

如果需要英特尔TBB dll的你可以从

www.threadingbuildingblocks.org - >转到下载区。

1

为了你的谁想要尝试的简单的解决方案(这是唯一的解决办法为我工作)是:

  1. 右键单击您的项目在Visual Studio
  2. 选择“属性”
  3. 下的英特尔性能库选项
  4. 选择 “YES” 为 “使用TBB”

this video starting from 1:19

祝你好运人! :)