我生成了一个动态库(libfoo.so
)需要libcrypto.so
. 在构建平台中运行良好(我在 Ubuntu 16.04 中构建它)。但是,当我将同一个库移动到 Debian Stretch 9.3 时,它开始抱怨缺少libcrypto.so.1.0.0
. openssl 软件包安装在 Debian Stretch 中,但libcrypto.so
名为libcrypto.so.1.0.2
. 经过一番挖掘,我发现虽然
libcrypto.so
Ubuntu 16.04 上的命名为libcrypto.so.1.0.0
(its SONAME
also libcrypto.so.1.0.0
),但实际上是 1.0.2 版本。
问题是:我不想为 Debian 重新编译一个特殊版本,我的库是否可以在两个 Linux 发行版上使用?同时链接两个 .so 版本,还是其他方法?
忘了说,我使用 gcc 编译器,我的库是用 C 编写的。