iOS-架构armv7的2个重复符号



我在项目中到处使用Resty,但现在因为我必须将图像上传到服务器,所以我尝试添加另一个名为RestKit的框架来处理文件上传。但当我编译时,它出现了错误:

duplicate symbol _NewBase64Decode in:
    /Users/iforests/Library/Developer/Xcode/DerivedData/Owlch-gnysrakcbhsgkubbjjjfbahlocqi/Build/Products/Debug-iphoneos/libRestKit.a(NSData+Base64.o)
    /Users/iforests/Documents/iOSworkspace/Owlch/LRResty.framework/LRResty(NSData+Base64.o)
ld: 2 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

有没有办法在不删除LRResty的情况下解决这个问题(因为明天是这个项目的最后期限)。非常感谢大家!

在将新库导入现有(旧)项目时遇到了这个问题-事实证明,问题是链接器标志-all_load(无论出于何种原因)仍在Xcode中的"构建设置-链接-其他链接器标志"中设置。

移除这面旗帜后,一切都很顺利。

从Resty源中删除这些文件。

LRResty/Classes/Categories/NSData+Base64.hLRResty/Classes/Categories/NSData+Base64.m

这将解决联系问题。

如果因此停止工作,请在Resty代码中重命名NSData+Base64的文件和类别,然后在Resty码导入的任何位置"NSData+Base64.h",将导入更改为您重命名类别的任何内容

我也遇到了同样的错误。通常,这种错误是由于项目文件夹中的类和xib重复而发生的。例如,在我的项目中,我有两次ServiceRequest.h/.m。去掉重复的,你就可以走了。

问题是两个库都定义了相同的方法:NewBase64Decode。

因此,您可以修改任何一个库的源代码,并将方法名称更改为其他名称,如"RKNewBase64Decode"。请记住,无论在哪里调用NewBase64Decode方法,都要对*.m文件进行更改!

此外,我注意到,如果您愚蠢地导入了一个.m,请删除导入。

当导入一个框架时,我遇到了这种情况,该框架包含一个与项目中名称完全相同的类。

最新更新