输入对`cv :: fastFree(void *)'的未定义引用

时间:2013-12-10 00:07:46

标签: c++ opencv eclipse-cdt

我在Win8上启动了opencv 2.4.7的教程,最新的MinGW和Eclipse Kepler R1,CDT。 C ++编译器包括引用[path-to-opencv] \ open247 \ build \ include。

在MinGW C ++链接器中的

我添加了库路径[path-to-opencv] \ open247 \ build \ x64 \ vc11 \ lib。 vc11目录包含我读过的VisualStudio库。用MinGW编译它们还可以吗?

我为这个样本添加了核心和highgui库(我认为我们不需要更多)。

但是,对于下面这个简单的空闲代码,我会引发以下编译错误。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv;
using namespace std;

int main(){
    Mat image;
}

编译错误是:

Description Resource    Path    Location    Type
undefined reference to `cv::fastFree(void*)'    FirstOpenCV     line 278, external location: C:\Users\John\Documents\Software\opencv247\build\include\opencv2\core\mat.hpp  C/C++ Problem

这是什么原因?

如果我添加

namedWindow("testWindow", 1);

我甚至得到了这个错误

Description Resource    Path    Location    Type
undefined reference to `cv::namedWindow(std::string const&, int)'   main.cpp    /FirstOpenCV/src    line 23 C/C++ Problem

1 个答案:

答案 0 :(得分:9)

您是否正确链接了您的图书馆?

-lopencv_core
-lopencv_highgui
-L<opencv_library_path>

必须在编译器/链接器命令行上的源文件之后指定库。 (链接器跟踪未解析的符号,并通过以后的命令行参数解析它们。)