如果代码在它们之间共享,则减少动态库的磁盘大小

Reducing disk size of dynamic libraries if code is shared between them

我的 C++ 应用程序加载了两个动态库 libdy1.so 和 libdy2.so。我知道库 libdy1.so 和 libdy2.so 共享很多通用代码库。由于这些库仅供我的应用程序使用,我正在考虑一种方法来减少这些库的磁盘大小,因为它们必须获得通用代码库的通用符号。 因此,在构建库期间,我是否可以避免将符号放入库 libdy2.so 中,反之亦然,如果该符号已存在于另一个库中。类似的东西是可能的吗?

So during building library can i avoid putting a symbol in library libdy2.so or visa-versa if that is already present in another library

是的,通过将一个库与另一个库动态链接。依赖者不需要它从依赖者那里找到的符号。

如果您不希望一个库完全依赖于另一个库,您可以将公共部分分离到第三个库中,并使两个库都依赖于公共库。