2012-03-11 76 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