OpenCV+QT5在Window下的環境配置記錄

Cayman98發表於2022-03-31

在安裝OpenCV時最需要注意的是,OpenCV庫,也就是我們需要的dll和動態庫需要我們使用CMake來生成。

雖然在官網上下載得到的檔案中已經包含了庫檔案和.h等標頭檔案,但是在具體開發中編譯器編譯後的原始檔都會和庫檔案去進行連結。

這就導致不同的編譯器可能需要不同的庫。所以,下載得到原始檔之後,要用指定的編譯器重新編譯。

0. 需要的工具

  • Qt Creator
  • OpenCV
  • CMake
  • cmd

1. Qt Creator安裝

這裡Qt Creator的安裝不在贅述,由於Qt提供的線上下載器太慢,可以直接去qt的離線下載介面下載,使用迅雷會比較快。詳細操作可以參考這裡。筆者使用的是5.9.0版本。

注意,這裡需要在環境變數中的Path變數下新增Qt\Qt5.9.0\Tools\mingwxx_xx\bin路徑。例如我在這裡新增了F:\Qt\Qt5.9.0\Tools\mingw530_32\bin,否則後面的CMake可能在Configure過後沒有對應的選項!

2. OpenCV的下載安裝

OpenCV也可以直接在官網下載,這裡選擇對應的Windows版本,下載後安裝。我這裡一開始使用4.5.5在cmd介面編譯時候報錯,後面使用的是3.2.0。

安裝完成後,在環境變數中新增Path變數,我新增的地址為F:\environment\opencv\build\bin。

3. CMake的下載使用

CMake可以直接在官網下載,注意安裝的是帶有介面的cmake-3.6.1-win64-x64.msi。

安裝後開啟cmake-gui.exe,Browse Source下選擇安裝的opencv下的sources資料夾,Browse Build可在opencv下新建一個release目錄並選擇,完整後點選左下角的Configure,選擇MinGW Makefiles。

點選後CMake開始執行,過一段時間,中間會出現許多紅色的選項,勾選WITH_OPENGL和WITH_QT,再次點選Configure。

執行完畢後可能還會出現部分紅色選項,分別以下表選擇對應專案。(有可能只有部分)

Name Value
QT_QMAKE_EXECUTABLE .../Qt/Qt5.3.1/5.3/mingw482_32/bin/qmake.exe
QT_MKSPECS_DIR .../Qt/Qt5.3.1/5.3/mingw482_32/mkspecs
QT_QTCORE_LIBRARY_DEBUG .../Qt/Qt5.3.1/5.3/mingw482_32/bin/Qt5Cored.dll
QT_QTCORE_LIBRARY_RELEAS .../Qt/Qt5.3.1/5.3/mingw482_32/bin/Qt5Core.dll
QT_QTCORE_INCLUDE_DIR .../Qt/Qt5.3.1/5.3/mingw482_32/include/QtCore/5.3.1/QtCore
Qt5_DIR .../Qt/Qt5.3.1

注意:如果你在安裝Qt5後,沒有給Qt5新增環境變數的話,那麼在這一步,CMake軟體是不會找到這些和Qt5相關的項的。

配置完成後再次Configure,沒有紅色選項,CMAKE_BUILD_TYPE選擇Release型別,再次點選Configure後沒有報錯,點選Generate

在Generate結束後需要使用cmd來最後編譯生成我們需要的動態dll庫。

4. 在cmd中使用mingw32-make命令構建dll庫

開啟cmd,使用cd命令進入我們剛才在CMake裡Browse Build選項中選擇的目錄,筆者的為F:\environment\opencv\release。(這裡可能cd不進去,Windows下切換磁碟直接輸入磁碟符+冒號就可以切換到其他盤了)。

f:
cd F:\environment\opencv\release
mingw32-make

等待構建成功後,該目錄下的include目錄和lib目錄下就生成了我們需要的庫了。

5. 在Qt Creator的.pro檔案中新增配置

在你需要使用OpenCV的專案的.pro檔案中新增配置

INCLUDEPATH += E:\opencv-4.0.1-Sources\opencv-build\install\include
LIBS += E:\opencv-4.0.1-Sources\opencv-build\lib\libopencv_*.a

相關文章