Компиляция C ++ OpenCV в Code :: Blocks не работает - PullRequest
0 голосов
/ 23 октября 2019

мой компьютер работает под управлением 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, надеюсь, кто-нибудь мне поможет.

...