2012-03-03 201 views
5

已经有相当多的相关问题了,但我只是没有得到解决。我正在构建一个包含两个独立静态库的应用程序:RestKit和另一个在NDA上的应用程序。当我建,我得到一个苹果的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链接器标志。无论我尝试了什么,我仍然得到同样的错误。有没有人有任何想法如何解决这个问题?

顺便说一句,我会删除我的相同帖子。张贴在错误的acct上。

回答

3

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

+0

将源代码修改为_not_定义NewBase64Decode或将NewBase64Decode更改为别的东西(也许MyNewBase64Decode!) – sherlock 2012-10-09 05:24:08