Инструменты
- Платформа: 64-битная Windows
- Цепочка компилятора: mingw с Qt
- Система создания: CMake
- Библиотеки : C ++ 11, OpenCV 4, Qt 5
Проблема (обновлена)
Следующий простой сегмент программы должен скомпилировать и отобразить сгенерированное изображение в OpenCV. Однако это всегда SIGSEGV только в режиме отладки (обратная трассировка в конце). Тем не менее, он прекрасно работает в режиме RELEASE.
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
void testOPENCV()
{
cv::Mat output(480, 640, CV_8UC3, cv::Scalar(255,0,100));
cv::namedWindow( "Test", cv::WINDOW_AUTOSIZE );
cv::imshow("Test",output);
cv::waitKey(0);
}
int main(int argc, char** argv)
{
testOPENCV();
return 0;
}
У меня есть сценарий CMake, который создает только необходимые модули OpenCV и связывает их с зависимостями. Соответствующая часть:
build_external_project(opencv "https://github.com/opencv/opencv.git" "4.2.0" "-DCMAKE_INSTALL_PREFIX=${THIRDPARTY_INSTALLFOLDER} - DCMAKE_BUILD_TYPE=${THIRDPARTY_BUILDTYPE} -DBUILD_LIST=core,imgproc,imgcodecs,highgui")
target_link_libraries(OpenVideo ${OpenCV_LIBS})
Двоичный файл может быть запущен без отсутствующих ошибок DLL. Зависимость ходока также указывает на то же самое.
Вот обратный след: