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

5

已经有一些相关的问题了,但我还是没能解决这个问题。我正在构建一个包含两个独立静态库的应用程序:RestKit 和另一个涉及保密协议的库。在构建时,我遇到了 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

现在,我已经看到一些可能的解决方法。 这篇文章看起来很有希望。 我还尝试使用这篇博客文章中的脚本添加构建规则。 我尝试添加和删除了-ObjC、-all_load和-force_load链接器标志。无论我尝试什么,我仍然会得到同样的错误。 有人知道如何修复这个问题吗?
顺便说一下,我会删除我的相同帖子。 我把它发布在错误的账户上了。
1个回答

3
最简单的解决方案是修改其中一个库的源代码,以定义NewBase64Decode。RestKit是开源的;我不知道你是否有秘密NDA库的源代码。

修改源代码,_不要_定义NewBase64Decode或将NewBase64Decode更改为其他内容(例如MyNewBase64Decode!) - sherlock

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接