2012-05-30 28 views
1

對,我知道這是一個非常愚蠢的問題,但我沒有運氣與我/我試圖做。我試圖使用objdetect.hpp頭文件,所以我已經包含了文件夾C:\ OpenCV2.1 \ include \ opencv2 \以及C:\ OpenCV2.1 \ include \ opencv和整個文件夾一羣其他庫和DLL的,我下面就http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2010如何鏈接和使用OpenCV頭文件?

的指令時,但OpenCV的版本,該教程是過時的,甚至沒有objdetect.hpp文件。所以我去下載最新的一個(OpenCV 2.4.0),但現在當我編譯它時,它給了我一個錯誤C1083:無法打開包含文件:「opencv2/core/core.hpp」沒有這樣的文件目錄。

我是否可以將所有OpenCV文件夾/文件放在與我的C++項目相同的目錄中?或者我該如何解決它?我已經嘗試將它放在與我的C++項目相同的位置,但是當我執行#include "../"時,該文件夾不會顯示。

再次,我知道這是一個愚蠢的問題,但請幫助。

讓我知道如果有人需要更多的信息因爲我不太確定whatelse放。

感謝

+0

您必須告訴Visual Studio您要使用的所有路徑。 OpenCV的。對於libs,你必須添加路徑OpenCV \ bin \ lib。對於頭文件,你必須添加OpenCV \ build \ include。如果你需要包含頭文件,像這樣做:#include

+0

我的OpenCV文件夾甚至沒有bin文件夾:(它有一個build文件夾和許多其他文件夾,但不是bin ...:S – Danny

+0

重要的是包含文件夾,所以VS可以找到它的頭文件 –

回答

1

的最佳方式管理不斷變化的目錄包含文件與編譯器選項。我更好的在linux和g ++,在那裏你只需指定不同的包含路徑位置-I屬性。

其在#include語句中使用相對路徑和絕對路徑一般被認爲是不好的做法。模塊路徑正常#include <sys/time.h>,其中sys可以被視爲模塊。只包含文件名和可能的模塊,然後用編譯器選項處理位置。

+1

感謝您的回覆。忘記告訴你這個錯誤發生在objdetect.hpp文件中,所以不會那麼仁慈不好改變你沒有自己編寫的源代碼嗎?是否有其他方法? – Danny

+0

@Danny,當然,如果代碼是這樣的,那麼你應該放棄它。你應該把它安裝在一個地方在你的系統上有意義,然後找出路徑並設置編譯器選項 – Brady

+0

我將它安裝在C:\驅動器中,並且在所包含的目錄中包含了C:\ OpenCV2.1 \ include \ opencv2上面,但問題是它不能f爲其他文件夾爲它:( – Danny