2011-09-03 18 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

祝你好運人! :)