【发布时间】:2013-04-14 22:58:44
【问题描述】:
本周我第一次尝试构建公司 iOS 库/框架,按照this blog post here 中的步骤进行操作。
由于这个问题之外的原因,我只能在为设备而不是模拟器构建时链接。
但是,现在我遇到了一个非常奇怪的错误:
ld:架构 armv7 clang 的 2 个重复符号:错误:链接器 命令失败,退出代码为 1(使用 -v 查看调用)
有问题的行建议:
重复符号 _OBJC_CLASS_$_iContactsGridCell 在: /Users/*/Desktop/Projects/contactservice/branch/ContactServicesClient/DerivedData/iContacts/Build/Intermediates/iContacts.build/Debug-iphoneos/iContacts-5.1.build/Objects-normal/armv7/ iContactsGridCell.o /Applications/Xcode.app/Contents/Developer/Library/Frameworks/athium-iOS.framework/athium-iOS 重复符号 _OBJC_METACLASS_$_iContactsGridCell 在: /Users/*/Desktop/Projects/contactservice/branch/ContactServicesClient/DerivedData/iContacts/Build/Intermediates/iContacts.build/Debug-iphoneos/iContacts-5.1.build/Objects-normal/armv7/ iContactsGridCell.o /Applications/Xcode.app/Contents/Developer/Library/Frameworks/athium-iOS.framework/athium-iOS
显然有问题的类是 iContactsGridCell.h
类本身继承自 Cell.h
@interface iContactsGridCell : Cell
类 Cell.h 是框架的一部分,如果我没有导入正确的文件,那么正如预期的那样,我会得到一个语义错误:找不到 Cell 的接口声明等。 p>
但是,当我导入它时,我收到以下重复错误。 除了iContactsGridCell.h!
之外,该文件不包含在项目的任何其他地方Cell.h 文件又只是框架下的一个类:
@interface Cell : NSObject
@property (strong,nonatomic) UIView *view;
@property CGRect rect;
@property int UID;
@property BOOL highlighted;
@property UIColor *b_colr;
- (id) initWithRect:(CGRect)frame;
- (BOOL) hasCoordinates:(CGPoint)coord;
- (void) ripple;
- (void) cubefy;
- (void) flipfy;
- (void) rotate;
- (void) setBg:(UIColor *)bg withAlpha:(CGFloat)alpha;
- (void) highlight;
- (void) unhighlight;
- (void) updateWithRect:(CGRect)rect;
@end
- 到底为什么会出现重复错误?
- 可能是什么原因造成的?
- 如何解决?
- 我如何才能获得关于在哪里找到重复项的更多信息更详细的输出?
PS:我已按照博客上的说明进行操作。但是我无法链接模拟器(出现错误的架构错误),所以我猜测框架中可能有问题而不是项目本身。这可能是重复错误的原因吗?
【问题讨论】:
标签: objective-c xcode frameworks linker linker-errors