我第一次尝试构建公司 iOS 库/框架是在本周,按照此处博客文章中的步骤进行操作。
由于这个问题之外的原因,我只能在为设备而不是模拟器构建时链接。
但是,现在我遇到了一个非常奇怪的错误:
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等的接口声明等。
但是,当我导入它时,我收到以下重复错误。除了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:我已经按照在博客上找到的说明来信了。但是我无法链接模拟器(出现错误的架构错误),所以我猜测框架中可能有问题而不是项目本身。这可能是重复错误的原因吗?