首页 > 解决方案 > 如果在动态库之间共享代码,则减少动态库的磁盘大小

问题描述

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

标签: c++static-linkingdynamic-linking

解决方案


因此,在构建库期间,我可以避免将符号放入库 libdy2.so 中,反之亦然,如果该符号已经存在于另一个库中

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

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


推荐阅读