2014-09-20 1 views
2

BConstants.h 파일을 가지고 있는데 프로젝트에 대한 모든 상수를 넣습니다. 나는이 파일에 다음 세 줄을 추가 할 때 파일이 #import 에드 다른 .m 파일에오류 - 아키텍처 arm64에 2 개의 중복 된 기호가 있습니까?

... 

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

#endif 

오류 때

#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 

, 나는 다음의 오류가 나타납니다 :

파일은 다음과 같다
duplicate symbol _kHero in: 
...list of .o files 
duplicate symbol kCount in: 
...list of .o files 
2 duplicate symbols for architecture arm64 

신청서의 compile sources에 중복 파일이있을 수 있으므로 해당 게시물에 게시 된 질문을 검토했습니다. n target,하지만 난 확인하고 중복 파일을 찾을 수 없습니다. 이 문제는 어디에서 유래 할 수 있습니까? BConstants.h 파일에이 2 개의 NSString 상수가 포함되어 있습니까?

답변

14

는 중복 파일

  1. 당신은
  2. 상수 kHero 및 kCount 이미 다른 파일에 정의 된 실수
  3. 로하는 .m 파일 대신 .H을 가져올 수 있습니다 외에이 오류에 대한 2 다른 가능성이 있습니다. 으로 상수 파일에 이러한 상수를 정의한 다음 파일을 Prefix.pch 파일로 가져 와서 다른 곳에서 제거하십시오.
+0

네, NSString을 먼저 컴파일해야한다고 생각합니다. 나는 단지'.h'를 어떤'.m' 파일로 직접 가져오고 있습니다. 'Prefix.pch'에'#import '와'#endif'사이에'BPContants.h'를 두어야합니까? – Michael

+1

이 답변은 실제 문제를 해결하지 못합니다. – rmaddy

관련 문제