我正在开发一个使用 OpenCV 和 Tesseract 库的 Android 应用程序。我只使用这些库的某些功能。但随着库的加入,应用程序的大小从 4 MB 增加到 50 MB。
我显然需要精简库。我该怎么做?
编辑:为了保持用户友好性,我不想使用 OpenCVManager。我不想强制用户安装另一个应用程序。
EDIT2:我需要对超立方体库做同样的事情。我想这也是同样的原理?
最佳答案
我绝对不确定我要建议什么,但我最近在 GCC 文档中找到了 -gc-sections
选项。在链接时使用,它应该从最终的可执行文件/库中删除所有未使用的代码部分。这可以避免手动修剪 OpenCV,考虑到该库的复杂性,这肯定是一项漫长且相当令人不愉快的任务。
要使用它,您显然必须使用 -ffunction-sections -fdata-sections -Os
编译每个依赖项,然后使用 -Wl,--gc-sections 链接整个代码
。也许值得一试!
我在 this page 上找到了一些详细信息.
如果我错了,请随时纠正我!
关于android - 修剪 OpenCV 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185669/