Click here to Skip to main content
Click here to Skip to main content

Building OpenCV Libraries for Linux on Windows Using MinGW and MSYS

, 23 Jan 2013
Rate this:
Please Sign up or sign in to vote.
PurposeThis article delineates procedure to be followed in order to generate OpenCV libraries for Linux operating system using MinGW and MSYS toolkit on Windows Operating system.Why can't we directly build OpenCV binaries on Linux ?This is a common question,  which broaches up in everyone's mind. Un

Purpose

This article delineates procedure to be followed in order to generate OpenCV libraries for Linux operating system using MinGW and MSYS toolkit on Windows Operating system.

Why can't we directly build OpenCV binaries on Linux ?

This is a common question,  which broaches up in everyone's mind. Unless we are not generating Windows libraries ( dll or lib ) , why are using this method.

The answer is simple, developers use this method of cross compiling OpenCV, to generate Linux binaries for "ARM" targets running Linux. Considering the hardware and processing limitations of ARM targets, it is absurd to setup development environment on ARM targets. But developers rather prefer to cross compile these binaries for Linux using MinGW and MSYS toolkit on Windows, which curtails efforts on setting up a Linux development environment on ARM real-time targets.

How Do We Build, OpenCV Libraries for Linux on Windows Using MinGW and MSYS ?

Kindly follow the below procedure to generate  OpenCV Linux libraries on Windows,

  • Download and install MinGW and MSYS from www.mingw.org
  • Check the Include Path and Library Path, set it if required.
  • Check the GCC version.
    •  Download the OpenCV source code from opencv.org , which redirects to Git repository OpenCV Git Repository
    • Upzip the downloaded OpenCV scource code to a directory of your choice.
    • Create an output directory where the generated binaries to be placed.
  • Install CMake, a tool which generates build configuration files, like Makefile or a Solution file based on the configuration selected.
  • Run the CMake tool, and specify the type of build configuration files to be generated, for Linux we choose "MinGW Makefiles"

  •  Now specify the OpenCV source code directory, and  build output directory in the CMake tool and select build configurations, like modules to be built, enabling IPP, CUDA, SSE, and many other options based on your requirements.
 
  •  Once the required configuration is selected, click on "Configure" and then "Generate" to get build configuration files.
  • Now open "MinGW" shell and change directory to OpenCV build directory which you have created.

  •  Execute command "mingw32-make" to build OpenCV source code. 
  • Once the build is complete, run "mingw32-make install" to get all the libraries, included files and documentation in the install folder.
The binaries generated, in "Install" folder can be included in any project, which intends to use OpenCV in its source.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Vijay Rajanna
Engineer
India India
I am Vijay hailing from Bangalore, the silicon valley of India. I posses extensive expertise working in mobility domain. I have a natural propensity for "Research and Innovation".
 
My areas of interest include Pervasive computing, Cognitive sensors, HCI, and Multimedia. Being strongly resolute with an everlasting fervor for learning, over the years I have learnt to come out of comfort zone to experiment with state of the art technologies and to contribute to developer community.
 
I blog about innovations and latest technologies from mobility domain, about development environments and programming languages across different platforms.
 
Blog : Amusement of a speculative mind...[^]
Projects : Amusement of a dilettante mind...[^]
LinkedIn : Vijay D R [^]
Follow on   Twitter   Google+

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Mobile
Web01 | 2.8.140721.1 | Last Updated 23 Jan 2013
Article Copyright 2013 by Vijay Rajanna
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid