【发布时间】:2019-04-10 05:26:59
【问题描述】:
我正在尝试编译 openSSL 以便我可以重命名目标库,即libssl 和 libcrypto 类似于 libssl_my 和 libcrypto_my。
为此我尝试了以下操作:
在 openSSL Makefile 中更改了几个标志,如
"SHARED_CRYPTO"、"SHARED_SSL"、libcrypto$(SHLIB_EXT)等,但没有任何效果。是否可以从 Makefile 更改 Lib 名称,如果可以,我应该寻找哪些更改?使用 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