Неопределенная ссылка на различные функции при использовании opencv

Я использую OpenCV 2.4.10 с Eclipse C ++ с MinGW. Эта версия 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, но там также обнаруживалась та же проблема, то есть неопределенная ссылка на различные функции и классы. Я не знаю, упускаю ли я что-то при компоновке или создании файлов. Поэтому, пожалуйста, помогите. Спасибо

1

Решение

ИМО Ашот ответил почти правильно, но у меня такое чувство, что ты их вообще не строил. Если это так ..

Сборка для MinGW, библиотеки имеют разные ссылки на весь код, и вы не можете компилировать с разными скомпилированными библиотеками

1

Другие решения

Как вы создали свой код? Если компилятор GCC, вам нужно добавить opencv libs с флагом -l.

Вы можете найти opencv libs с помощью команды — pkg-config opencv —libs (в Linux).

0

«В этой версии opencv есть только библиотеки для Visual C, поэтому я связал эти библиотеки в MinGW (eclipse)».

нет, это не сработает.

Вы не можете использовать готовые Visual Studio, они предназначены для другого компилятора.

вам придется получить Cmake и строить OpenCV libs с Mingw первым.

0

Начал работать, сначала собрав библиотеки с CMake, а затем используя их в eclipse.

0
По вопросам рекламы [email protected]