我必须“压缩”所有需要的代码才能在嵌入式系统上运行 ldaps。所以 3 MiB 的 lybcrypto 和近 700KiB 的 libssl 太多了。
我现在正在试验 ldapsearch,因为从 ldap 读取是最重要的目标。
我检查了ld ldapsearch
ldapsearch 使用哪些共享对象,发现了这一点:
670K /usr/local/lib64/libssl.so.1.1 **
3,3M /usr/local/lib64/libcrypto.so.1.1 **
40K /usr/lib64/libcrypt.so.1 -> libcrypt-2.17.so
104K /usr/lib64/libresolv.so.2 -> libresolv-2.17.so
2,1M /usr/lib64/libc.so.6 -> libc-2.17.so **
19K /usr/lib64/libdl.so.2 -> libdl-2.17.so
139K /usr/lib64/libpthread.so.0 -> libpthread-2.17.so
12K usr/lib64/libfreebl3.so
所以标记的**
是最关键的
现在我完全不知道如何从下载的源代码开始编译这些东西,也不知道应该给 gcc 发出什么命令来编译优化大小。
我还教授了它是否可以节省空间来静态链接共享对象。 (我认为,根据我读到的内容,在这种情况下,优化器可以在链接时删除大部分未使用的代码,因此所有入口点无论如何都会被编译)
我发现我可以首先尝试的优化是-Os
,我将其放入cflags
并lib_cflags
字符串中,Configurations/00-base-templates.conf
但大小仍然相同
编辑我建议的另一个选择是使用strip
,但我不知道如何将其提供给.\config