2011-01-26 5 views
3

나는 최근에 내 수업에 일부 오픈 페인트 코드를 추가하고 중복 기호

내가 문자를 중복 오류가 발생할 수 갑자기

구축 할 때 오브젝트 파일에서 발견됩니다 .mm하도록 변경되었습니다.

LD : 저쩌구에 기호 _audioPlayer을 복제 /Objects-normal/i386/Stage2.o 및/사용자/저쩌구 .build/디버그 - iphonesimulator은/blah.build/객체 - 정상/I386/Stage1.o

왜 갑자기이 오류를 일으키는

? 정확히 오류가 무엇입니까?

내가 다른 클래스에서 같은 이름의 변수를 가지고, 그것은 문제가 될 것인가?

감사

답변

3

을 전역 범위 (인터페이스 내부가 아님)에서 같은 이름이며 링커가 이에 대해 불평하고 있습니다. 아래 .mm 파일에서의 당신의 방법을 구현하는 경우

1

짧은 대답은 당신이 GCC의 명령 행 인수와 함께이 오류를 억제 할 수 있다는 것입니다 : -Wl을 - 수 - 여러 정의 당신은 아마 두 개의 변수를 선언하고

+0

어떻게 이것을 Xcode에서 할 수 있습니까? 덕분에 – jarryd

+1

나는 엑스 코드에 익숙하지 않은 해요,하지만 당신은 GCC를 사용하여 컴파일? 이 경우 GCC는 파일에 호출 될 때, 그 명령 줄 옵션을 전달할 것입니다. –

+1

당신은 다른 컴파일러 플래그 프로젝트/목표 설정에서 설정할 수 있습니다 –

1

, duplicate symbol error가 발생합니다.

#import <Foundation/Foundation.h> 

class CppTestOne 
{ 
public: 
    void Test(); 
// { 
//  NSLog(@"Hello C Plus Plus"); 
// } 
}; 

void CppTestOne::Test() 
{ 
    NSLog(@"Hello C Plus Plus"); 
} 

는 당신은

3

대신 .H의하는 .m 파일을 가져올 경우이 오류가 발생할 수 있습니다 명확하지이 오류에 대한

#import <Foundation/Foundation.h> 

class CppTestOne 
{ 
public: 
    void Test() 
    { 
     NSLog(@"Hello C Plus Plus"); 
    } 
}; 

//void CppTestOne::Test() 
//{ 
// NSLog(@"Hello C Plus Plus"); 
//} 

자세한하여 방법을 구현할 수 있습니다.

#import "SomeClass.m"