iOS 来自同一库的不同版本的重复符号
iOS duplicate symbols from different versions of the same library
App A 需要第三方库 B 和 C。B 和 C 都包含不同版本的库 D(来自另一个第三方)。
没有第三方源代码可用。
这将在链接应用程序时出现重复符号错误。
有哪些解决方案?
涉及相同库的相关问题,允许简单地删除一个副本:How to handle duplicate symbol error from 3rd party libraries?
这已通过重命名 B 中的冲突符号(以及它的 D 版本,如果分开的话)解决了。
这可以直接在二进制文件上完成,只要重命名的长度与原始文件的长度相同(例如,通过反转库前缀)。
local $/ = "[=10=]";
open my $fh, '<+', $library;
binmode $fh;
while (my $field = <$fh>) {
my $length = length $field;
chomp $field;
if (defined $translation{$field}) {
seek $fh, -$length, SEEK_CUR;
print $fh $translation{$field};
}
}
App A 需要第三方库 B 和 C。B 和 C 都包含不同版本的库 D(来自另一个第三方)。 没有第三方源代码可用。 这将在链接应用程序时出现重复符号错误。
有哪些解决方案?
涉及相同库的相关问题,允许简单地删除一个副本:How to handle duplicate symbol error from 3rd party libraries?
这已通过重命名 B 中的冲突符号(以及它的 D 版本,如果分开的话)解决了。 这可以直接在二进制文件上完成,只要重命名的长度与原始文件的长度相同(例如,通过反转库前缀)。
local $/ = "[=10=]";
open my $fh, '<+', $library;
binmode $fh;
while (my $field = <$fh>) {
my $length = length $field;
chomp $field;
if (defined $translation{$field}) {
seek $fh, -$length, SEEK_CUR;
print $fh $translation{$field};
}
}