1. 程式人生 > >Qt+OpenCV+Win10安裝注意事項

Qt+OpenCV+Win10安裝注意事項

注:系統:Windows 10 64位;
      Qt 版本:Qt 5.10.1;
      OpenCV版本:OpenCV 3.3.1;
      文中涉及的路徑僅供參考,以實際路徑為準。
     
1、安裝目錄不能有空格,不能有中文。
2、安裝Qt。
3、安裝完Qt後配置環境變數。path:E:\Qt_x64\Qt5.10.1\Tools\mingw530_32\bin 。
4、安裝OpenCV。
5、安裝CMake。
6、CMake配置:
(1)路徑選擇:
        source code:          D:/opencv_x64/opencv/sources
        build the binaries:  D:/opencv_build4Qt_x64
(2)configure
(3)選:MinGW Makefiles
        選:第二個   Specify native compilers
(4)配置C和C++編譯器路徑
        C:  C:\Qt\Qt5.5.0\Tools\mingw492_32\bin\gcc.exe
        C++: C:\Qt\Qt5.5.0\Tools\mingw492_32\bin\g++.exe
(5)finish
(6)勾選:   WITH_OPENGL
                     WITH_QT
                     ENABLE_CXX11
        不勾選:WITH_IPP
                     ENABLE_PRECOMPILED_HEADERS
                     WITH_CUDA
                     BUILD_opencv_ts
                     與“python2”、"python3"相關的都不勾選
(7)為防止後面編譯出錯,而規避一些問題,對source檔案做以下修改:
       <1> 修改E:\OpenCV_3.3.1\opencv\sources\modules\videoio\src\cap_dshow.cpp檔案,在#include "DShow.h"這行的上面加一行        #define NO_DSHOW_STRSAFE
       <2>(暫時不改)開啟E:\MinGW-w64\x64-4.8.1-release-posix-seh-rev5\mingw64\x86_64-w64-mingw32\include\aviriff.h
             發現第一行的多行註釋少了個/符號,加上儲存。
            關於MinGW-64以及OpenCV 4.0 的修改參考以下博文:
            https://blog.csdn.net/huihut/article/details/81317102
       <3> 轉到opencv源所在的儲存庫, 找到 C:/opencv/sources/Cmake/OpenCVCompilerOptions.cmake,將下面這一行註釋掉:
              add_extra_compiler_option(-Werror = non-virtual-dtor)
              即改為:#add_extra_compiler_option(-Werror = non-virtual-dtor)

(8)選擇Qt路徑
        設定 QT_MAKE_EXECUTABLE 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\bin\qmake.exe

        設定 Qt5Concurrent_DIR 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Concurrent

        設定 Qt5Core_DIR 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Core

        設定 Qt5Gui_DIR 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Gui

        設定 Qt5Test_DIR 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Test

        設定 Qt5Widgets_DIR 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Widgets

        設定 Qt5OpenGL_DIR 為 E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5OpenGL

        設定 CMAKE_BUILD_TYPE 為 Release 或者 RelWithDebInfo
(9)不停configure直到不出現紅色框
        Generate
7、編譯OpenCV
        在編譯生成的資料夾空白處按shift+右鍵,或者在cmd裡切換到指定的路徑,執行下面的命令,此處的路徑即6.1的路徑(D:/opencv_build4Qt_x64):
        mingw32-make
        mingw32-make install
8、新增新生成的bin到Path環境變數
     把編譯後,目標目錄下的bin目錄路徑,即E:\Software\QT\OpencvBuild\bin  新增到Path環境變數中。

9、將OpenCV需要的庫放到相應的資料夾下,新建OpenCV資料夾。
     將D:\OpenCV\OpenCV3300\build下的“include”、“lib”、“bin”資料夾拷過來。 
     拷相應的dll到debug(或release)裡面,以後需要什麼都可以拷到這裡面。


第7步遇到的一些錯誤:
modules\videoio\CMakeFiles\opencv_videoio.dir\build.make:173: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
opencv\sources\3rdparty\include\ffmpeg_: No such file or directory            (安裝路徑中有空格)
'modules/videoio/CMakeFiles/opencv_videoio.dir/vs_version.rc.obj' failed
CMake Error at cmake/OpenCVFindLibsVideo.cmake:221
Cmake 編譯OpenCV3.1.0過程中出現如下錯誤: 
CMake Error: CMake was unable to find a build program corresponding to “MinGW Makefiles”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. 
解決辦法:MinGW沒有找到,需要重新配置環境變數,指定Qt安裝目錄下MinGW位置,如…/Qt5.10.1/Tools/mingw530_32/bin/mingw32-make.exe。

cmath:1119:11: error: '::hypot' has not been declared using ::hypot;
計算機中安裝有Python庫時會出現此問題,解決辦法是配置cmake的時候取消與"Python2"、"Python3"相關的選項並且刪除相關的路徑