2011-08-23 2 views
0

필자는 필자의 함수가 작성된 일부 cpp 파일을 가지고 있습니다. 내 iPhone 앱에서 그 기능을 호출하고 싶습니다. 내 .m 파일에서 C++ 메서드를 호출하는 방법 ???Apple Mach-O Linker (Id) 오류 : .m 파일에서 C++ 파일을 호출하는 중

여기 내 .cpp 파일

내 viewDidLoad에 이벤트 지금
int add(int a, int b) 
{ 
    return a+b; 
} 

난 그냥 레이블에 결과 표시를 가져 오기 위해 다음 코드를 사용하고있다. 컴파일하는 동안

NSNumber *n = [[NSNumber alloc] initWithInt:add(5,7)]; 
[myLabel setText:[NSString stringWithFormat:@"%@",n]]; 

나는 다음과 같은 오류가 발생 :

Undefined symbols for architecture i386: 
    "_add", referenced from: 
     -[usingc__ViewController viewDidLoad] in usingc__ViewController.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

어디 코드에서 오류가 ?? 무슨 편집이 이것에 필요한가 ??

답변

0

Objective-C 파일에서 C++ 파일을 사용하려면 파일 확장명을 .m에서 .mm으로 변경하십시오.

+0

고마워요 ... – DShah

+0

환영합니다 ... – Maulik

+0

또는이 특별한 경우에는'add'의 정의 앞에'extern "C"'를 넣으십시오. 나는 Maulik의 대답이 아마도 당신이하려고하는 것에 더 일반적으로 도움이된다고 생각합니다. –

관련 문제