我正在尝试手动编译SDK,但生成的.dylibs和.so的大小超过70mb:
➜ lib ✗ pwd
/Users/gond/opencv/build/lib
➜ lib ✗ du -h .
71M
这是我正在使用的命令:
cmake -D CMAKE_BUILD_WITH_INSTALL_RPATH=ON \
-D CMAKE_INSTALL_PREFIX=/usr/local ..
有没有办法减小尺寸?最终我想为Android编译opencv,但对于一个合理的应用来说,70mb的图书馆太大了。
任何想法都赞赏。
更新:
以下是使用上述命令生成的最大10个库的列表:
38M libopencv_imgproc.3.4.0.dylib
13M libopencv_core.3.4.0.dylib
4.1M libopencv_dnn.3.4.0.dylib
3.1M cv2.so
2.9M libopencv_imgcodecs.3.4.0.dylib
1.9M libopencv_calib3d.3.4.0.dylib
1.3M libopencv_ts.a
1.2M libopencv_java340.dylib
916K libopencv_photo.3.4.0.dylib
以下是使用Android选项的最大10个列表:
40M libopencv_java3.so
6.0M libopencv_imgproc.a
5.5M libopencv_core.a
2.5M libopencv_ximgproc.a
2.4M libopencv_calib3d.a
1.6M libopencv_ts.a
1.5M libopencv_photo.a
1.5M libopencv_ml.a
1.3M libopencv_features2d.a
奇怪的是,libopencv_imgproc.3.4.0.dylib
是38mb,libopencv_imgproc.a
是13mb。有没有办法省略'子模块'?例如,有没有办法省略运动分析,物体检测但保留ColorMaps?
答案 0 :(得分:0)
尝试
cmake -DCMAKE_BUILD_TYPE=MINSIZEREL ...
尝试strip
所有内容,并使用upx
...