我在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
答案 0 :(得分:9)
您是否正确链接了您的图书馆?
-lopencv_core
-lopencv_highgui
-L<opencv_library_path>
必须在编译器/链接器命令行上的源文件之后指定库。 (链接器跟踪未解析的符号,并通过以后的命令行参数解析它们。)