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

fed*_*der 7 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编译它们还可以吗?

我为这个示例添加了core和highgui库(我认为我们不需要更多).

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

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

using namespace cv;
using namespace std;

int main(){
    Mat image;
}
Run Code Online (Sandbox Code Playgroud)

编译错误是:

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
Run Code Online (Sandbox Code Playgroud)

这是什么原因?

如果我加

namedWindow("testWindow", 1);
Run Code Online (Sandbox Code Playgroud)

我甚至得到了这个错误

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

Luc*_*nzo 11

你有正确的图书馆链接吗?

-lopencv_core
-lopencv_highgui
-L<opencv_library_path>
Run Code Online (Sandbox Code Playgroud)

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

  • 感谢您注意到必须在源文件之后指定库。这有效! (2认同)