Opencv выдает много ошибок valgrind - PullRequest
0 голосов
/ 12 октября 2018

У меня есть самое простое приложение на C ++, которое отображает фотографию с использованием OpenCV:

#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>

int main(int argc, char** argv) {
    cv::Mat img = cv::imread("photo.jpg");
    cv::imshow("image", img);
    cv::waitKey();
    return 0;
}

... и я компилирую ее на linux, gcc 7.2.0 против OpenCV 3.2.0 (версия репозитория Ubuntu)вот так:

$ g++ -c -o example_opencv.o example_opencv.cpp
$ g++ -o example_opencv example_opencv.o -lopencv_core -lopencv_imgcodecs -lopencv_highgui

Программа явно работает без проблем.Однако при проверке Valgrind он выдает безумное количество ошибок:

$ valgrind ./example_opencv
(... lengthy error report ...)
==14665== LEAK SUMMARY:
==14665==    definitely lost: 34,152 bytes in 434 blocks
==14665==    indirectly lost: 0 bytes in 0 blocks
==14665==      possibly lost: 1,024 bytes in 14 blocks
==14665==    still reachable: 64,144 bytes in 1,328 blocks
==14665==         suppressed: 0 bytes in 0 blocks
==14665== Rerun with --leak-check=full to see details of leaked memory
==14665== 
==14665== For counts of detected and suppressed errors, rerun with: -v
==14665== Use --track-origins=yes to see where uninitialised values come from
==14665== ERROR SUMMARY: 105422 errors from 1000 contexts (suppressed: 0 from 0)

Если я использую тот же подход в программе с реальными ошибками, связанными с памятью, ее ошибки будут полностьюпотерян в этом беспорядке.

Есть ли вероятность отладки программ OpenCV с использованием Valgrind?

...