我的 SDK 使用 libssl.a 库,但是当我将它提供给客户以使用我的 SDK 时,他们也使用了 libssl.a 版本并导致重复符号。有没有办法让两者共存?
谢谢
我的 SDK 使用 libssl.a 库,但是当我将它提供给客户以使用我的 SDK 时,他们也使用了 libssl.a 版本并导致重复符号。有没有办法让两者共存?
谢谢
一种选择是在每个符号上使用自定义前缀重建 libssl。我为此编写了一个脚本,您可以在此处找到。
一个更简单的选择可能是不链接到 libssl.a,而是要求客户链接到它。为此,只需#import
像往常一样简单地使用 libssl 的标头,但将 libssl.a 从与库阶段的链接二进制文件中排除。除非目标是可执行文件,否则链接器不会尝试解析符号,因此您将能够以这种方式编译静态库而不会出现问题。