Windows 下透過mingw32-make 編譯opencv4.5.5,經過一系列問題解決後發現其他正常,imshow崩潰.
GCC版本太低原因,換更高版本的GCC解決. 畢竟GCC 5.3.0是2015年發行的,opencv 4.5.5是2020年發行的
嘗試換GCC i686-8.1.0-release-posix-sjlj-rt_v6-rev0編譯,呼叫imshow時正常執行,並且中途不用改mutex.h檔案(5.3.0編譯時原始碼報錯,修改mutex.h檔案後解決 ),整個編譯過程非常順利。
GCC環境: GCC i686-5.3.0-release-posix-dwarf-rt_v4-rev0
OpenCV: 4.5.5
問題程式碼:
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> using namespace cv; int main() { // Mat mat; Mat mat = Mat::zeros(1024, 1024, CV_8UC3); imshow("", mat); waitKey(0); // std::cout << "Hello, World!" << std::endl; return 0; }
GCC 5.3.0 當執行到imshow時崩潰, GCC 8.1.0 正常執行.