2013-01-20 37 views
4

我正在學習如何使用OpenCV,並作爲練習運行程序(在發佈模式,x64)。我有0編譯錯誤,但有一個彈出式屏幕,說:視覺工作室2010程序無法啓動,因爲opencv_core243.dll丟失

「程序無法啓動,因爲opencv_core243.dll缺少」

不過,我確信我聲明瞭正確的環境變量並指定必要的庫/目錄。當我複製下面的.dll文件到X64 /釋放我的問題是固定的:

  • opencv_core243.dll
  • opencv_highgui243.dll
  • opencv_imgproc243.dll

我的程序編譯罰款和現在作品。不過,我想知道爲什麼。複製和粘貼這些.dll文件感覺很便宜。我錯過了自動生成這些.dll文件的步驟嗎?

+0

它無法找到dll。將它們複製到發佈目錄中修復該問題。看看這個。 http://msdn.microsoft.com/en-us/library/yx7xezcf(v=vs.71).aspx –

回答

4

此問題的實際解決方案是將opencv bin目錄的路徑追加到系統環境變量PATH

看一看this answer描述完整的程序在Visual Studio 2010

到安裝OpenCV是有這種方法的缺點。預構建的OpenCV x86和x64二進制文件具有相同的名稱。因此,通過將OpenCV的路徑附加到PATH變量,您可以一次執行32位版本或64位版本。要運行其他版本,您必須更改PATH變量。

另一種方法,(我個人最喜歡的)還包括將dll複製到輸出目錄,但這是在編譯結束時自動完成的。我所做的是爲x86和x64 dll路徑創建新的環境變量。我創建了分別包含x86和x64 dll的路徑的用戶變量CV_BIN32CV_BIN64

創建用戶變量後,打開你的OpenCV的項目,去Project Properties - >Build Events - >Post-Build Event - >Command Line

在運行時爲您需要的dll添加複製命令。

這一個是Win32發佈配置:

copy "$(CV_BIN32)\opencv_core243.dll" "$(OutDir)" 
copy "$(CV_BIN32)\opencv_highgui243.dll" "$(OutDir)" 

你可以改變他們所有的4種配置,(調試/發佈)的(Win32/64)

現在,當項目構建過程完成後,指定的dll將自動複製到輸出目錄,並且錯誤將不會顯示。

相關問題