编译一个旨在尽可能减小大小的库

编译一个旨在尽可能减小大小的库

我必须“压缩”所有需要的代码才能在嵌入式系统上运行 ldaps。所以 3 MiB 的 lybcrypto 和近 700KiB 的 libssl 太多了。

我现在正在试验 ldapsearch,因为从 ldap 读取是最重要的目标。

我检查了ld ldapsearchldapsearch 使用哪些共享对象,发现了这一点:

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,我将其放入cflagslib_cflags字符串中,Configurations/00-base-templates.conf但大小仍然相同

编辑我建议的另一个选择是使用strip,但我不知道如何将其提供给.\config

相关内容