Я пытаюсь запустить простой файл c ++, который включает библиотеки openCV и создает простой Mat. К сожалению, когда я пытаюсь скомпилировать файл, используя g ++, он возвращает ряд ошибок.
До сих пор я пытался удалить определение Mat все вместе и просто включил файлы openCV, что сработало! Я новичок в командной строке, поэтому я не уверен, что это проблема с тем, как я использую g ++. Тем не менее, я немного поработал над openCV в XCode (хотя с XCode нет необходимости работать в командной строке, так как все выстроено аккуратно во время выполнения).
Кроме того, это моя первая публикация в Stack Overflow, поэтому я, возможно, допустил ошибку при форматировании.
Это мой файл main.cpp, который я пытаюсь скомпилировать. Как я упоминал ранее, если я удалю строку «Mat test;», она успешно скомпилируется и запишет в консоль как следует.
#include <iostream>
#include <string>
#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/videoio.hpp>
using namespace std;
using namespace cv;
int main() {
Mat test;
cout << "Mat Defined!" << endl;
return(0);
}
Это команда g ++, которую я использую:
g++ -o main.out main.cpp
и вот эта ошибка, которую я получаю, когда пытаюсь ее запустить:
/usr/bin/ld: /tmp/ccbbhoNd.o: in function `cv::Mat::~Mat()':
main.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x3c): undefined reference to `cv::fastFree(void*)'
/usr/bin/ld: /tmp/ccbbhoNd.o: in function `cv::Mat::release()':
main.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x68): undefined reference to `cv::Mat::deallocate()'
collect2: error: ld returned 1 exit status
Любая помощь очень ценится. Я также отказался от подробного флага для g ++, поскольку он возвращал тонну строк, и я не был уверен, что люди думают о 50+ строках кода. Большое спасибо!