1. 基础准备
1. 下载Opencv和Contrib库
Opencv:Releases · opencv/opencv · GitHub
Contrib:Tags · opencv/opencv_contrib · GitHub
2. 安装Visual Studio 或 MinGW64
MinGW:Tags · opencv/opencv_contrib · GitHub
这里安装1.12.0 MinGW 。 以及VC16,VC17
3. 安装CMake
这里安装 3.27
2. Cmake配置
1. 这里安装了visual studio 2022,通过-T 指定v142使用vc16(vs2019)编译器编译。
2. 点击config
接着添加contrib模块,编译NonFree模块,设置安装路径,接着点config。让所有红色Item消失。
3. 下载三方库
config过程需要下载额外的三方库,如果一直下载失败则需要一些科技。
1. 请自行准备可以访问外部资源的方式,通过设置环境变量,让Cmake使用代-理。
2. 通过一下网站查询 “raw.githubusercontent.com” 的IP地址。Website Overview: Daily Visitors, Safety Status, Traffic Rank, Competitor Analysis (ipaddress.com)
在Host文件中加入IP映射: C:\Windows\System32\drivers\etc\hosts
185.199.108.133 raw.githubusercontent.com
3. 点击config,所有三方库会正常下载。
4. 接着点击generator生成工程
3. 编译工程
1. 打开工程,点击生成->批生成。勾选release和debug版本的 INSALL目标;然后点击生成。
2. 当所有项目正常生成后,安装目录里会存放编译好的opencv库。
*QA:
1. 使用MINGW编译出现 "too many sections,file too big“ 错误。
A:修改opencv源代码文件夹中的CMakeLists.txt文件,添加如下代码:
if(MINGW)
# Work around 'too many sections' error with MINGW/GCC
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj")
endif()
原因是obj文件是COFF(Common Object File Format)格式,而COFF文件的header里有两位是表示number of sections的,不能超过32766