RSA 签名 ... 在 Android 和 iPhone 项目中。环顾四周后,我选择了cryptopp ...
相关(来自 Crypto++ wiki):Android(命令行)和iOS(命令行)。
有没有一种更简单或更有效的方法来减少库或cryptopp的大小?
不,iOS 上的编译器和 libtool 无法判断您可能需要(或不需要)什么,因此您可以在存档中获取所有内容。Android 上提供的 GNU 工具也是如此。
我对编译过程中的模板生成并不十分熟悉。但我记得模板可以添加相当多的代码。有没有办法停止/改进这个(编译器选项?)?
没有简单的方法。但是您可以浏览源代码并提取显式模板实例化。您想查找用CRYPTOPP_DLL_TEMPLATE_CLASS
. 您可以在config.h 中看到它是如何定义的。
但我不会担心,因为您可以让链接器从静态库中丢弃大部分(或全部?)未使用的代码。
如果我想从项目中手动删除我的简单用例未使用的所有源/头文件,是否有任何工具可以提供帮助?
不,我不知道有任何工具可以做到这一点(类似于 Boost's bcp
)。我过去曾尝试过此方法,但沮丧地放弃了。
你没有问什么:当链接到 Crypto++ 的静态版本时,你如何减小最终二进制文件的大小。以下是答案:
两个都
iOS
调整GNUmakefile
CXXFLAGS += -gfull
LDFLAGS += -dead_strip
安卓
CXXFLAGS += -Wl,--exclude-libs,ALL
arm-linux-androideabi-strip
使用--strip-debug
,--strip-unneeded
或--strip-all
在您的最终库或可执行文件上运行
这两种技术都包含在 Wiki 页面中。如果你在 Linux 上工作,还有另一个 wiki 页面来介绍Crypto++ Linux上的大小缩减和剥离。
如需更多阅读,请参阅性能和响应性调优(适用于 iOS)、arm-eabi-strip 和二进制大小,以及删除未使用的函数/死代码(适用于 Android 和 Linux)。