win10-x64 + Qt5.13 + OpenCV3.4.6-x64 環境搭建
cmake:cmake-3.15.0-rc3-win64-x64
准備:安裝Qt(加MingGW64位編譯器)+ 安裝OpenCV(64位)+ 安裝cmake-x64
添加環境變量:
D:\Qt\Qt5.13.0\5.13.0\mingw73_64\bin
D:\Qt\Qt5.13.0\Tools\mingw730_64\bin
D:\OpenCV\build\x64\vc15\bin
D:\cmake-3.15.0-rc3-win64-x64\bin
D:\opencv3.4.6-build\install\x64\mingw\bin
注意:安裝OpenCV時解壓路徑,(重要的事情說三遍<我自己就掉進這個坑里,苦悶了兩天>)
*****opencv所在的文件夾名一定不能有空格***** 譬如:“Program files”
*****opencv所在的文件夾名一定不能有空格*****
*****opencv所在的文件夾名一定不能有空格*****
1.運行cmake文件夾bin中gui開始配置
where is the source code中填入OpenCV的源碼路徑
where to build the binaries中填入編譯后生成文件的存放位置D:\opencv3.4.6-build(可自己新建一個文件夾)
Advanced勾選
點擊下方的Configure按鈕,會彈出配置框
Specify the generator for this project下拉框中選擇MinGW Makefiles,然后圈選Specify native comilers,點擊Next
之后會讓選擇MinGW的C/C++編譯器位置,填入對應編譯器位置(在Qt編譯器中確認,一般在Qt安裝目錄中Tools文件夾內),
Fortran不用填寫,配置完后點擊Finsh,進行配置驗證。
然后會出現一系列紅色的value
勾選:WITH_QT、WITH_OPENGL
基於編譯中出現的問題,直接一次性不勾選:WITH_IPP ENABLE_PRECOMPILED_HEADERS WITH_OPENCL_D3D11_NV
然后重新 Configure,直到紅色選項消失,Generate
2.編譯前:opencv\cmake\下找到“OpenCVCompilerOption.cmake”,打開注釋掉#add_extra_compiler_option(-Werror=non-virtual-dtor)
3.編譯:在D:\opencv3.4.6-build目錄下,shift+右鍵打開shell,執行指令mingw32-make -j 8(8線程快速編譯)
4.安裝mingw32-make:編譯完成后執行指令mingw32-make install
5.Qt中配置OpenCV:新建或打開工程,在pro文件中添加如下兩語句,一個是編譯后的頭文件夾,一個是靜態庫,一個是動態庫,兩個庫選一個使用
注意:LIBS += -L的后面一定要加‘\’(否則編譯報錯)
INCLUDEPATH += D:\opencv3.4.6-build\install\include
LIBS += -L \
#D:\opencv3.4.6-build\install\x64\mingw\lib\libopencv_*.a
D:\opencv3.4.6-build\install\x64\mingw\bin\libopencv_*.dll
工程上右鍵執行qmake,編譯通過即可。
6.測試CPP代碼:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <opencv2/opencv.hpp> using namespace cv; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Mat srcImg = imread("D:\\_Diagonal.jpg"); imshow("1",srcImg); } MainWindow::~MainWindow() { delete ui; }