How to setup Qt and openCV on Windows with MSVC2017

From Qt Wiki
Jump to: navigation, search

Introduction

This article shows how to build OpenCV (or any external library using cmake) on Windows with the MSVC2017 compiler and using the QtCreator to build applications using the OpenCV library. This can be necessary if you want to use qtwebengine currently not supported by MinGW compiler. This article assumes a standard installation of Windows 10 and Qt.

Installing MSVC2017

The MSVC 2017 compiler can be installed as a part of Visual Studio Community 2017 (version 15.9) available at this link. During the installation process do not forget to select "Visual Studio Build Tools 2019" to install the build tools.

Building OpenCV

CMake

Download CMake from https://cmake.org/download/ and install it.

Getting openCV

Download the latest version of openCV at https://sourceforge.net/projects/opencvlibrary/files/. In this example, we will be using version 4.1.0. Execute opencv-4.1.0-vc14_vc15.exe and extract to C:\.

Create a new folder C:\opencv_build.

Compiling OpenCV

Start CMake-gui and then choose the following settings:

  Where is the source code: C:/opencv/sources
  Where to build the binaries: C:/opencv_build

Click the Configure button and choose:

  Visual Studio 15 2017
  You can choose x64 if you want to build a 64bit application, in this tutorial will be using a 32bit version.

Use default native compilers.

Click on Finish.

You can then change the default settings by selecting options and then click on Configure.

Then click on Generate.

Open the Windows PowerShell and type:

  cd 'C:\opencv_build\'
  cmake.exe --build . --config Debug --target INSTALL

Or if you want to be in release mode:

  cmake.exe --build . --config Release --target INSTALL

Then add OpenCV to the Path variable:

  Type "Path" in the Windows search bar and select "Edit the system environment variables"
  Click on "Environment Variables"
  Double click on "Path"

And add C:\opencv_build\install\x86\vc15\bin to the Path variable (necessary to find OpenCV dll at runtime).

Configuring Qt

In your project, select the Desktop Qt 5.13.1 MSVC2017 32bit kit (or Desktop Qt 5.13.1 MSVC2017 64bit if you have compiled openCV in 64bit).

Now add the OpenCV library in your project.pro file (unlike MinGW you link against .lib and not .dll):

In debug mode:

  LIBS += -LC:\opencv_build\install\x86\vqtc15\lib -lopencv_core410d -lopencv_imgproc410d -lopencv_highgui410d -lopencv_imgcodecs410d -lopencv_videoio410d -lopencv_video410d -lopencv_calib3d410d -lopencv_photo410d -lopencv_features2d410d
  INCLUDEPATH += C:\opencv_build\install\include
  DEPENDPATH += C:\opencv_build\install\include

In release mode:

  LIBS += -LC:\opencv_build\install\x86\vc15\lib -lopencv_core410 -lopencv_imgproc410 -lopencv_highgui410 -lopencv_imgcodecs410 -lopencv_videoio410 -lopencv_video410 -lopencv_calib3d410 -lopencv_photo410 -lopencv_features2d410
  INCLUDEPATH += C:\opencv_build\install\include
  DEPENDPATH += C:\opencv_build\install\include

Your OpenCV/Qt application should compile and run without problems.