мой компьютер работает под управлением Ubuntu 18.04, и я установил OpenCV 3.2.0 для C ++.
Проблема, с которой я столкнулся, заключается в том, что я могу компилировать и выполнять файлы cpp, которые используют библиотеку opencv, например, этот код шаблона
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
Mat img = imread("lena.jpg", CV_LOAD_IMAGE_COLOR);
if(img.empty())
return -1;
namedWindow( "lena", CV_WINDOW_AUTOSIZE );
imshow("lena", img);
waitKey(0);
return 0;
}
с помощью терминала и команды
g++ main.cpp -o output `pkg-config --cflags --libs opencv`
, но если я пытаюсь встроить его в Code :: Blocks, я получаю ошибки
/.../main.cpp|8|undefined reference to `cv::imread(cv::String const&, int)'|
/.../main.cpp|11|undefined reference to `cv::namedWindow(cv::String const&, int)'|
/.../main.cpp|12|undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'|
/.../main.cpp|13|undefined reference to `cv::waitKey(int)'|
obj/Debug/main.o||In function `cv::String::String(char const*)':|
/usr/include/opencv2/core/cvstd.hpp|622|undefined reference to `cv::String::allocate(unsigned long)'|
obj/Debug/main.o||In function `cv::String::~String()':|
/usr/include/opencv2/core/cvstd.hpp|664|undefined reference to `cv::String::deallocate()'|
obj/Debug/main.o||In function `cv::Mat::~Mat()':|
/usr/include/opencv2/core/mat.inl.hpp|592|undefined reference to `cv::fastFree(void*)'|
obj/Debug/main.o||In function `cv::Mat::release()':|
/usr/include/opencv2/core/mat.inl.hpp|704|undefined reference to `cv::Mat::deallocate()'|
||error: ld returned 1 exit status|
||=== Build failed: 9 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
Iгде-то читал, что мне нужно что-то изменить в опциях сборки проекта, но я не знаю, что именно. У меня почти нет опыта работы с C ++, и я никогда не использовал Code :: Blocks, надеюсь, кто-нибудь мне поможет.