OpenCV 5.0.0-pre
Open Source Computer Vision
Loading...
Searching...
No Matches
Building OpenCV on Windows from Source Code using MSYS2 UCRT64 and VS Code (C++)

Original author Mahadev Kumar
Compatibility OpenCV >= 4.x
Note
This tutorial was tested on Windows >= 7 using the MSYS2 UCRT64 environment.
The OpenCV team does not maintain MSYS/Cygwin configuration and does not regularly test it with continuous integration.

Introduction

This tutorial explains how to build OpenCV from source on Windows using the MSYS2 UCRT64 toolchain and use it inside Visual Studio Code with C++.

The build configuration uses:

  • MSYS2 (UCRT64 shell)
  • GCC (UCRT toolchain)
  • CMake
  • mingw32-make
  • VS Code

This method produces native Windows binaries linked against the Universal C Runtime (UCRT).


Prerequisites

Install the following software before proceeding:

After installing MSYS2, always open the:

MSYS2 UCRT64 Terminal

Note
Do not use the MSYS, MinGW64, or CLANG64 shells for this build.

Step 1: Update MSYS2

Open the MSYS2 UCRT64 terminal and update the system.

pacman -Syu

Restart the terminal if prompted.


Step 2: Install Required Packages

Install the required compiler and build tools.

pacman -S mingw-w64-ucrt-x86_64-gcc \
mingw-w64-ucrt-x86_64-cmake \
mingw-w64-ucrt-x86_64-make

Verify installation:

gcc --version
cmake --version
mingw32-make --version
Note
Add the following directory to your Windows PATH:
C:\msys64\ucrt64\bin

Step 3: Clone OpenCV Source Code

Clone OpenCV and optional contrib modules.

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

Step 4: Create Build Directory

cd opencv
mkdir build
cd build

Step 5: Configure the Build with CMake

Run CMake using the MinGW Makefiles generator.

cmake -G "MinGW Makefiles" ../
Note
If you do not want to use opencv_contrib, remove the OPENCV_EXTRA_MODULES_PATH option.

Step 6: Build OpenCV

Compile OpenCV.

mingw32-make -j6
Note
If the build fails due to memory limitations, reduce the job count.

Example:

mingw32-make -j4

Step 7: Install OpenCV

Install the compiled libraries.

mingw32-make install

After installation, OpenCV will be located in: opencv/build/install

Add the following directory to your Windows PATH:

C:\path\to\opencv\build\install\x64\mingw\bin

Step 8: Verify with a C++ Example

  • Create a folder outside the OpenCV source directory. Example: first-project
  • Inside the folder create main.cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
std::cout << "OpenCV Version: " << CV_VERSION << std::endl;
cv::Mat img = cv::Mat::zeros(400, 400, CV_8UC3);
cv::imshow("OpenCV Test", img);
return 0;
}
n-dimensional dense array class
Definition mat.hpp:957
static CV_NODISCARD_STD MatExpr zeros(int rows, int cols, int type)
Returns a zero array of the specified size and type.
#define CV_VERSION
Definition version.hpp:19
#define CV_8UC3
Definition interface.h:79
void imshow(const String &winname, InputArray mat)
Displays an image in the specified window.
int waitKey(int delay=0)
Waits for a pressed key.
int main(int argc, char *argv[])
Definition highgui_qt.cpp:3
  • Create CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(OpenCVApp)
set(OpenCV_DIR "C:/path/to/opencv/build/install/lib/cmake/opencv4")
find_package(OpenCV REQUIRED)
add_executable(app main.cpp)
target_link_libraries(app ${OpenCV_LIBS})
  • Build the project.
mkdir build && cd build
cmake -G "MinGW Makefiles" ..
mingw32-make
  • Run the program.
./app.exe
Note
If everything is configured correctly, a window should appear displaying a blank image.

Using OpenCV in Visual Studio Code

Install the following extensions in VS Code:

  • C/C++
  • CMake Tools

Open your project folder in VS Code.

Configure the project using CMake.

cmake -G "MinGW Makefiles" ..

Build the project.

mingw32-make

Run the executable.


Troubleshooting

CMake cannot find OpenCV

Ensure that OpenCV_DIR is set correctly.

Example:

set(OpenCV_DIR "C:/path/to/opencv/build/install/lib/cmake/opencv4")

mingw32-make not found

Make sure the following path is added to the Windows environment variable PATH: C:\msys64\ucrt64\bin


Build fails due to memory limits

Reduce parallel build jobs.

mingw32-make -j2

Conclusion

You have successfully built OpenCV from source using MSYS2 UCRT64 and verified it with a C++ project in VS Code.

This setup allows you to develop OpenCV-based C++ applications using a fully open-source toolchain on Windows.