2014-09-20 52 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

相關問題