我正在使用带有MinGW的eclipse C ++的OpenCV 2.4.10。这个版本的opencv只有visual C库,所以我在MinGW(eclipse)中链接了这些库。我尝试运行一个简单的代码来加载和显示图像:
#include<iostream>
#include<cv.h>
#include<highgui.h>
using namespace std;
using namespace cv;
int main(){
Mat image = imread("D:/photo1.tif",1);
namedWindow( "Display", WINDOW_AUTOSIZE );
imshow( "Display", image );
return 0;
}
但是在构建它时会显示以下错误:
undefined reference to `cv::imread(std::string const&, int)'
undefined reference to `cv::namedWindow(std::string const&, int)'
undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
我也尝试过与Tesseract OCR引擎相同的功能,但它也显示了同样的问题,即对各种函数和类的未定义引用。我不知道在链接或构建文件时是否遗漏了一些东西。所以请帮忙。感谢
答案 0 :(得分:1)
IMO Ashot的答案几乎是正确的,但我觉得你根本没有建立它们。如果是这样的话......
Build for MinGW,库有不同的链接到所有代码,你不能用不同的编译库编译
答案 1 :(得分:0)
你是如何构建代码的?如果编译器是GCC,则需要使用-l标志添加opencv库。
你可以使用命令-pkg-config opencv -libs(在Linux中)找到opencv libs。
答案 2 :(得分:0)
&#34;这个版本的opencv只有visual C库,所以我在MinGW(eclipse)中链接了这些库。&#34;
不,这不行。你不能使用prebuild visual studio,那些是针对不同的编译器。
你必须首先使用mingw获得cmake和构建 opencv库。
答案 3 :(得分:0)
通过首先使用CMake建立库然后在eclipse中使用它来实现它。