2011-11-16 12 views
1

저는 Xcode에서 매우 작은 프로그램을 사용하여 label을 표시하고 viewWillAppear 메서드에서 레이블 텍스트를 변경합니다. (!)Xcode 4.2에서 C++이 컴파일되지 않습니다 (링크?).

int getNumber(){ 
    return 42; 
} 

문제는, 그 # import를 내 *의 .mm에서 "TestLibMain.h"을 가지는 클래스를 포함한 클래스 등 label.text이 같은 함수와 C++ 라이브러리에서 와야한다 그리고 컴파일러 오류를 호출하지 않습니다

TestLibMain *tlb = new TestLibMain(); 
int myInt = tlb->getNumber(); 
NSString *myString = [NSString stringWithFormat:@"%d",myInt]; 

와 기능을 사용하지만, 링커 오류 : 아키텍처 i386을위한

정의되지 않은 심볼 : 에서 참조 "TestLibMain :: getNumber()", : - [ tbViewController의 buttonPressed :] tbViewController.o LD의 : 오류 : 링커 명령, 종료 코드 1 (호출을 볼 수 -v 사용)

내 느낌이와 함께 실패한 것을 그 소리 아키텍처 i386을 찾을 수 없습니다 기호 (들) cpp-class가 컴파일되지 않았습니다.

나는 많은 것들을 시도했지만 어딘가에 매달려있다. 그것은 모두 같은 디렉토리에 있는데, .mm 확장자를 사용합니다. 모든 것이 잘되지만, 항상이 링커 오류입니다. 엑스 코드 4.2

모든 아이디어는,

맥 OS X 라이온 :-) 미친 얻기? 무료 함수로 .cpp 또는 .mm를 정의 getNumber()에서

+0

라이브러리가 32 비트 또는 64 비트 아키텍처 용으로 구축 되었습니까? –

+0

흥미로운 질문입니다. Xcode 프로젝트를 컴파일하는 동안 getNumber() 함수가 포함 된 "TestLibMain"라이브러리가 자동으로 생성되기를 바랍니다. 그래서 미리 컴파일 된 라이브러리가 없습니다. 나는 일반적으로 틀린가? –

답변

5
int getNumber() { 
    return 42; 
} 

. 이 :

int TestLibMain::getNumber() { 
    return 42; 
} 

TestLibMain의 구성원으로 getNumber()을 정의합니다.

+0

예. 당신은 가격이 많이 고맙습니다. :-) –

관련 문제