2014-09-20 70 views
2

我有一个BConstants.h文件,我把我的项目的所有常量。该文件如下:错误 - 架构arm64的2个重复符号?

#ifndef asdf_BConstants_h 
#define asdf_BConstants_h 

typedef NS_ENUM(NSUInteger, BTheme) { 
    kField 
}; 

typedef NS_ENUM(NSUInteger, BItem) { 
    kBox 
}; 

typedef NS_ENUM(NSUInteger, BMovementState) { 
    kTouchUp, 
    kTouchDown 
}; 

#endif 

当我以下三行添加到该文件时,我收到后续错误文件的时候#import版到另一个.m文件

... 

NSString * const kHero = @"Hero"; 
NSString * const kCount = @"Count"; 

#endif 

错误:

duplicate symbol _kHero in: 
...list of .o files 
duplicate symbol kCount in: 
...list of .o files 
2 duplicate symbols for architecture arm64 

我看过已发布的问题,因此我可能在应用程序的compile sources中有重复的文件ñtarget,但我检查,我发现没有重复的文件。这个问题还有哪些地方可以解决,是否在BConstants.h文件中包含了2个NSString常量?

回答

14

有除了重复文件

  1. 你可能会误
  2. 进口.m文件,而不是.H
  3. 常量kHero和kCount在一些其他文件已定义2种此错误的其他可能性。由于 您在常量文件中定义这些常量,只需在Prefix.pch文件中导入 该文件并从其他地方删除。
+0

是的,我认为那些'NSString's需要先编译。我只是直接将'.h'导入任​​何'.m'文件。我在'Prefix.pch'中的'#import '和'#endif'之间放置了'BPContants.h'? – Michael 2014-09-20 04:46:25

+1

这个答案没有解决实际问题。 – rmaddy 2014-09-20 05:37:05

相关问题