如何在Windows上使用MinGW构建OpenCV 3.2.0

Ale*_*lex 2 windows opencv mingw build cmake

这篇文章包含了我(和其他用户)从源代码构建库时遇到的所有问题.由于没有教程,我决定创建这种FAQ帖子,将所有解决方案放在一起.希望它会有所帮助!

配置:
OpenCV 3.2.0
MinGW-w64 x86_64-6.1.0-win32-seh-rt_v5-rev0

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

Ale*_*lex 6

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

    • 修复1:sprintf ()家庭安全错误.
      添加add_definitions(-DSTRSAFE_NO_DEPRECATE)到开头CMakeLists.txt.这将定义STRSAFE_NO_DEPRECATE项目的符号并抑制错误.
    • 修复2:"太多部分" as.exe错误.
      将以下行添加到CMakeLists.txt(source)的开头:

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