【问题标题】:Renaming libcrypto and libssl重命名 libcrypto 和 libssl
【发布时间】:2019-04-10 05:26:59
【问题描述】:

我正在尝试编译 openSSL 以便我可以重命名目标库,即libssl 和 libcrypto 类似于 libssl_my 和 libcrypto_my。

为此我尝试了以下操作:

  1. 在 openSSL Makefile 中更改了几个标志,如 "SHARED_CRYPTO""SHARED_SSL"libcrypto$(SHLIB_EXT) 等,但没有任何效果。是否可以从 Makefile 更改 Lib 名称,如果可以,我应该寻找哪些更改?

  2. 使用 patchelf 修补 libcrypto 和 libssl 的 SONAME 并且它有效,但 libssl 仍在搜索 libcrypto.so.0.o。看起来我们无法通过 patchelf 更改 libssl 中的依赖库名称。如果有办法,请告诉我。

【问题讨论】:

  • 我尝试使用 --replace-needed 作为第二个选项的 patchelf,现在 libssl 能够找到重命名的 libcrypto
  • 虽然使用 patchelf ldconfig 会抱怨库被截断,因为 patchelf 在 .dynstr 中更改/添加条目。如果有人可以在第一种方法中提供帮助,那将会很有帮助。

标签: gcc makefile openssl libcrypto libssl


【解决方案1】:

我们可以替换 Makefile 中的以下字符串

  1. 将“libssl”替换为“libmy_ssl”
  2. 将“libcrypto”替换为“libmy_crypto”
  3. 将“-lssl”替换为“-lmy_ssl”
  4. 将“-lcrypto”替换为“-lmy_crypto”

对于 1.1.1 源代码树,注意以下两条规则,保持标签名称为 libcrypto.num 和 libssl.num

  1. libmy_crypto.map: util/mkdef.pl util/libcrypto.num
  2. libmy_ssl.map: util/mkdef.pl util/libssl.num

试试看,祝你好运!

【讨论】:

    猜你喜欢
    • 2013-09-21
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多