最近,因为项目需要使用OpenCV,所以自己按照需要编译OpenCV目前最新版3.4.2,折腾了一天多才最终搞定,在这里记录下编译过程需要注意的一些问题。

    首先是各软件版本:

    1、OpenCV 3.4.2

    2、CMake 3.12.1

    3、Qt 5.11.1

    4、MinGW 32 使用的是Qt按照的版本

    5、系统是Windows 7

    上述软件的下载安装就不赘述了,大家都很熟练的~

    下面是编译注意事项:   

    1、添加 MinGW 到环境变量
         为系统变量 Path 添加MinGW路径,俺的是 C:\Qt\Qt5.11.1\Tools\mingw530_32\bin

    2、使用 CMake 生成 OpenCV 的 Makefile:
          1)打开 cmake-gui,设置源码和生成路径(根据各自实际情况设置):
                  ⦁ Where is the source code: E:\OpenCV-3.4.2\sources
                  ⦁ Where to build the binaries: E:\OpenCV-3.4.2\build

          2)点击 Configure,设置编译器:
                 ⦁ Specify the generator for this project: MinGW Makefiles
                 ⦁ Specify native compilers
                 然后:
                 ⦁ Compilers C:      C:\Qt\Qt5.11.1\Tools\mingw530_32\bin\gcc.exe
                 ⦁ Compilers C++:  C:\Qt\Qt5.11.1\Tools\mingw530_32\bin\g++.exe
          最后点:Finish

     3、编译配置:
         ⦁ 勾选 WITH_OPENGL
         ⦁ 勾选 WITH_QT
         ⦁ 勾选 WITH_OPENMP(用于并行计算)
         ⦁ 勾选 ENABLE_CXX11

         ⦁ 不勾选 ENABLE_PRECOMPILED_HEADERS
         ⦁ 不勾选 WITH_IPP
         ⦁ 不勾选 WITH_TBB(OpenCV-3.4.2版本出现的问题,之前的版本需要看情况)
         ⦁ 不勾选 WITH_MSMF(同上,第一天俺就在折腾这个)

         因为俺不需要Java和python支持,所以这两个俺全取消了 :)

    
         点击 Configure,Generate 生成 Makefile

     4、在下面正式编译前还得处理一个源程序内容
         修改\modules\videoio\src\cap_dshow.cpp文件,

         在#include "DShow.h"这行的上面加一行#define NO_DSHOW_STRSAFE,如:
         #define NO_DSHOW_STRSAFE
         #include "DShow.h"

      5、编译 OpenCV:
           在build目录空白处 shift+右键,在此处打开命令窗口
           打开终端进行编译:mingw32-make (没有设置设置变量的话需要敲全目录你懂的)

           可打开多进程:mingw32-make -j4(俺的机器是4核)
           该过程在俺这里大概半小时,希望你的机器能飞快!

       6、装载OpenCV:
           上述编译过程完成后,如果没有错误,那么恭喜你,你成功了!

            那么就进行最后一步装载吧:mingw32-make install
            该命令会将编译后生成的头文件及动态库文件复制到目录:“\install”。该目录包括运行OpenCV程序所需要的全部资源。

 

这就齐活了,要是编译中发现什么问题,请自行度之,因为每个人遇到的问题可能都不一样~