链接多个静态库时出现重复的符号错误。

时间:2012-03-03 03:26:18

标签: ios xcode linker static-libraries duplicate-symbol

已经有相当多的相关问题,但我只是没有得到解决。我正在构建一个包含两个独立静态库的应用程序:RestKit和另一个在NDA上的静态库。当我构建时,我得到Apple Mach-O链接器错误如下:

duplicate symbol _NewBase64Decode 
in /Users/geraldwburke/Desktop/iOS Programming/MyApp/someLib.a(NSData+Base64.o) 
and /Users/geraldwburke/Library/Developer/Xcode/DerivedData/MyAppddlwzdeskfwaxyargomvfhurvxzi/Build/Products/Debug-iphoneos/libRestKit.a(NSData+Base64.o) 
for architecture armv7

现在,我已经看到了一些可能的修复方法。 This article似乎很有希望。我还尝试使用this blog entry中的脚本添加构建规则。我已经尝试添加和删除-ObjC,-all_load和-force_load链接器标志。无论我尝试过什么,我仍然会得到同样的错误。有没有人知道如何解决这个问题?

BTW我将删除我的相同帖子。把它贴在错误的帐户上。

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是将其中一个库的源代码修改为 not define NewBase64Decode。 RestKit是开源的;我不知道您是否拥有秘密NDA库的来源。

相关问题