Compiling openCV 2.3.1 programs with MinGW gcc/g++ on Windows 7 64bit

前端 未结 2 1374
遥遥无期
遥遥无期 2021-01-13 11:42

For a week I\'ve been struggling with compiling openCV programs. I\'ve tried everything I could possibly find on the internet.

What I did is: I\'ve downloaded OpenC

2条回答
  •  时光说笑
    2021-01-13 12:05

    In case someone else needs to solve this issue, here's how I got the posted OpenCV/HighGUI sample code to compile in Windows 7 x64 using MinGW, MSYS, and CMake:

    1. build OpenCV from source using MinGW/MSYS/CMake. This is because I could not get the MinGW compiled version in the OpenCV-win-SuperPack to link properly in MinGW/MSYS/Windows 7 x64.

      For full reference, here's how I compiled OpenCV:

      • make sure you have an up-to-date CMake (v2.6 or later) and MinGW (with GCC, G++, and MSYS options) installed
      • if you want the new Qt-based OpenCV HighGUI front-end, you will need to install Qt 4 (SDK).
      • download a OpenCV source/superpack version 2.2 or later (I used OpenCV-2.3.1-win-superpack.exe)
      • unzip the contents to [OPENCV_SOURCE_DIR] (I put it in C:/opencv, so there should be a file at C:/opencv/README for example)
      • create a [OPENCV_BUILD_DIR] directory elsewhere (I used C:/opencv/build/mingw)
      • use the CMake-GUI tool, specify the source directory as [OPENCV_SOURCE_DIR], the build directory as [OPENCV_BUILD_DIR], and click "Configure".
      • you may wish/need to go tweak the options (e.g. I ticked "Qt" and "Qt-OpenGL" entries, then clicked "Configure" again, then had to provide the path to the qmake executable)
      • once you have finished configuring OpenCV, click "Generate"
      • in a MSYS terminal, browse to [OPENCV_BUILD_DIR], and run "make" to build the code (this may take a while)
      • once the has been built properly, run "make install", which collects the built code/libraries/include dirs into [OPENCV_BUILD_DIR]/install folder (or a different folder if you changed the corresponding option when using the CMake-GUI tool)
      • add [OPENCV_BUILD_DIR]/install/bin folder to the PATH environmental variable. If you do not know how to do this, then I'd recommend using the Path Editor GUI tool.
      • if you end up using Qt, you will also need to put the bin folder of Qt SDK in the PATH environmental variable. This is the folder that includes qmake.exe.
    2. put the following sample code into a file called test.c. I modified the includes slightly to make them compatible with OpenCV v2.2 and above.

       #include 
       #include 
       #include 
       #include 
       #include 
      
       int main(int argc, char *argv[])
       {
         // Nothing but create a window
         cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE); 
         cvMoveWindow("mainWin", 100, 100);
         cvWaitKey(0);
         return 0;
       } 
      
    3. in a MSYS terminal, browse to the folder where you put test.c, and run:

      gcc -o test -I"[OPENCV_BUILD_DIR]/install/include" test.c \
        -L"[OPENCV_BUILD_DIR]/install/lib" \
        -lopencv_core[OPENCV_VERSION] \
        -lopencv_imgproc[OPENCV_VERSION] \
        -lopencv_highgui[OPENCV_VERSION]
      

      So in my case:

      gcc -o test -I"/c/opencv/build/mingw/install/include" test.c \
        -L"/c/opencv/build/mingw/install/lib" \
        -lopencv_core231
        -lopencv_imgproc231
        -lopencv_highgui231
      

    Path Editor: http://www.redfernplace.com/software-projects/patheditor/

提交回复
热议问题