记录一次自定义编译opencv的历程。经历了2天的鏖战,每次编译都失败,真的是很崩溃,好在柳暗花明又一村。谨以此文,给后面有同样需求的小伙伴给些微薄提醒,避免踩坑。废话不多说,开始正文。
1.编译环境
- 平台 :MacMini M1
- 系统 :12.6
- Xcode版本 :14.2
- cmake版本 : 2.24.0(不要使用2.25或者是2.26版本,有坑,编译时会报错)
- python版本 : 3.9.7
- opencv版本:4.3.0
2. cmake的安装
-
首先前往cmake下载地址,下载3.24.0版本的安装包,直接安装,打开cmake应用,选择Tools->How to install for Command Line Use
-
根据提示在终端上输入"sudo “/Applications/CMake.app/Contents/bin/cmake-gui” --install" 等待安装完毕。
-
在终端输入 cmake --version显示 cmake version 3.24.0代表成功
3. opencv下载指定版本
- 前往链接opencv下载指定版本
- 找到4.3.0版本,下载Source
4. 编译指定版本的opencv
-
将source文件放在opencvForBuild文件夹(自己创建)下。
-
找到 opencvForBuild/opencv/platforms/ios/build_framework.py 这个文件并打开修改文件
-
在终端执行python脚本,然后等待编译完成
cd ~/Desktop/opencvForBuild
python3 opencv-4.3.0/platforms/ios/build_framework.py ios4.3.0
- 在ios4.3.0文件下就可以看到opencv.framework
5.opencv.framework的瘦身
如果你的项目里面只用到了一些基础的用法,这个时候你可以减少编译一些不必要的模块,来达到减少opencv.framework大小的效果。
如下图所示,删除不必要的文件夹,保留必要的文件夹。
然后执行编译的脚本,最后的opencv.framework包的大小只有40MB:
cd ~/Desktop/opencvForBuild
python3 opencv-4.3.0/platforms/ios/build_framework.py ios4.3.0