减少.dylib和.so

时间:2017-12-31 18:39:04

标签: opencv build cmake opencv4android

我正在尝试手动编译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?

1 个答案:

答案 0 :(得分:0)

尝试

cmake -DCMAKE_BUILD_TYPE=MINSIZEREL ...

尝试strip所有内容,并使用upx ...