如何在Windows上使用MinGW构buildOpenCV 3.2.0

这篇文章包含了我(和其他用户)在从源代码构build库时遇到的所有问题。 由于没有教程,我决定创build这种types的常见问题post,把所有的解决scheme放在一起。 希望它会帮助!

组态:
OpenCV 3.2.0
MinGW-w64 x86_64-6.1.0-win32-seh-rt_v5-rev0

欢迎您在答案中添加更多信息,因为将所有内容放在一个地方更方便。

  1. 将OpenCV下载并解压到您选择的文件夹。
  2. 现在opencv\sources包含CMakeLists.txt和所有其他必要的文件。 在CMake中配置项目。 CLion用户可能只是打开CMakeLists.txt

    • 修复1sprintf ()系列安全性错误。
      add_definitions(-DSTRSAFE_NO_DEPRECATE)添加到CMakeLists.txt的开头。 这将为项目定义STRSAFE_NO_DEPRECATE符号并抑制错误。
    • 修复2 :“太多的部分” as.exe错误。
      CMakeLists.txt添加到CMakeLists.txt ( 源 )的开头:

       set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-Wa,-mbig-obj") set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-Wa,-mbig-obj") 
    • 修复3 :“最后一个参数必须是一个8位立即”。
      没有发现比硬编码0x88而不是mask_lo = _MM_SHUFFLE(2, 0, 2, 0) (二进制10 00 10 00 )和0xDD而不是mask_hi
      只要我的问题得到更好的答案,我会更新这一段。
    • 修复4 :在MinGW中没有c ++ 11 thread
      再次,一个肮脏的解决方案:在#endif // C++11之前添加#include <mingw.*.h><mutex><thread><condition_variable> 。 ( 来源 )
  3. 建立它! 这将需要大约30-40分钟。
  4. 找到输出文件夹。 它仍然是一团糟,但包含一个Makefile
    启动cmdcd到输出文件夹并调用[path to compiler]\mingw32-make.exe install 。 ( 来源 )
  5. 瞧,你的图书馆是在install文件夹! 现在您可以将其移动到所需的目的地并设置环境变量。