2012-03-11 71 views
0

我使用macports和最新的Eclipse CDT安裝了opencv 2.3.1。現在我想要編譯這段代碼:Eclipse CDT無法找到opencv 2頭文件

>  #include <iostream.h> 
>  #include <cv.h> // or opencv.hpp, no difference 
>  
>  int main(int argc, char **argv) { 
>  
>  
>  } 

我做的http://opencv.itseez.com/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html所有步驟,但編譯器的輸出是:

> make all Building file: ../main.cpp Invoking: GCC C++ Compiler g++ 
> -I/opt/local/include/opencv -I/opt/local/include/opencv2 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp" In file included from 
> /usr/include/c++/4.2.1/backward/iostream.h:31, 
>     from ../main.cpp:8: /usr/include/c++/4.2.1/backward/backward_warning.h:32:2: warning: 
> #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 
> 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of 
> the deprecated header <iostream.h>. To disable this warning use 
> -Wno-deprecated. In file included from ../main.cpp:9: /opt/local/include/opencv2/opencv.hpp:46:33: error: 
> opencv2/core/core_c.h: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:47:33: error: 
> opencv2/core/core.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:48:39: error: 
> opencv2/flann/miniflann.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:49:39: error: 
> opencv2/imgproc/imgproc_c.h: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:50:39: error: 
> opencv2/imgproc/imgproc.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:51:35: error: 
> opencv2/video/video.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:52:45: error: 
> opencv2/features2d/features2d.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:53:43: error: 
> opencv2/objdetect/objdetect.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:54:39: error: 
> opencv2/calib3d/calib3d.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:55:29: error: opencv2/ml/ml.hpp: 
> No such file or directory /opt/local/include/opencv2/opencv.hpp:56:39: 
> error: opencv2/highgui/highgui_c.h: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:57:39: error: 
> opencv2/highgui/highgui.hpp: No such file or directory 
> /opt/local/include/opencv2/opencv.hpp:58:39: error: 
> opencv2/contrib/contrib.hpp: No such file or directory make: *** 
> [main.o] Error 1 
> 
> **** Build Finished **** 

我在做什麼錯?

+0

通過包括/ opt/local/include以及/ opt/local/include/opencv,它足夠奇怪地工作了...... – Geniedesalpages 2012-03-13 14:05:14

回答

2

好的..我自己也遇到了很多麻煩。

您需要查看您自己爲這些頭文件安裝的opencv文件夾結構。有時它們不在安裝指南告訴你的位置。

在我的計算機,例如,大多數我所需的頭文件的位置是:

[安裝目錄] /包含/ OpenCV的 [安裝目錄] /包含/ opencv2

但一些被中:

[安裝目錄] /模塊/核心/包括/ opencv2 [安裝目錄] /模塊/ highgui /包括/ opencv2等

您需要找到那些包含文件。然後去你的IDE(日食)。在eclopse中應該有一個設置「包含目錄」

將您的IDE設置爲在包含文件所在的目錄中查找包含文件。

然後確保您添加庫。詢問你是否需要幫助。

1

上面列出的錯誤表明,您沒有指定包含目錄的路徑。首先在安裝文件夾中搜索include目錄。通常它們位於/ home/usr/include/opencv和/ home/usr/local/include/opencv

定位這些文件後,您可以在Eclipse CDT中打開項目屬性。選擇GCC C++編譯器 - 目錄並在其中添加包含目錄。選擇GCC C++鏈接器選項並給出庫路徑,通常它是/ usr/local/lib 也用引號指定庫,例如「cv」,「highgui」等。這將完成配置。 希望它有幫助。

+0

實際上我必須指定特定的庫(核心,imgproc等 - 沒有「」) – Geniedesalpages 2012-03-13 14:05:59