打开终端编译OpenCV时,再完成31%的时候出现报错。
出错结果类似以下情况(成功后忘记截图,在网上找了个相似的报错):
gcc: error: long: No such file or directory
D:\Qt5.12.2\Tools\mingw730_64\bin\windres.exe: preprocessing failed.
mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1495: modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj] Error 1
mingw32-make[2]: *** Waiting for unfinished jobs....
mingw32-make[1]: *** [CMakeFiles\Makefile2:1889: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
mingw32-make: *** [Makefile:182: all] Error 2
PS D:\opencv\opencv-build>
解决方法:在cmake编译阶段,勾上BUILD_opencv_world这一选项,然后重新 Configure-Generate-mingw32-make
Configure-Generate-mingw32-make
等待编译100%完成后,执行
mingw32-make install
然后为系统重新添加环境变量;
F:\opencv\opencvbuild\install\x64\mingw\bin
备注:自己去找编译后的OpenCV文件夹路径,这里是我的。
Qt新建项目:
配置.Pro文件:
win32 {
INCLUDEPATH += F:\opencv\opencvbuild\install\include
LIBS += F:\opencv\opencvbuild\install\x64\mingw\bin\libopencv_world411.dll
}
这里我在网上试了很多种版本,最后发现这种能够运行成功。
测试代码:
#include "mainwindow.h"
#include <opencv2/core/core.hpp>
#include <QApplication>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
Mat img = imread("D:/RGB.jpg");
namedWindow("window");
imshow("window", img);
waitKey(0);
return a.exec();
}
结果: