2015-01-31 1 views
4

Xcode에서 3 * .m 파일 (main.m, AppDelegate.m 및 projectnameTests.m)을 사용하여 새로운 코코아 응용 프로그램을 만들었습니다. object-cpp를 사용하기 위해 3 * .m 파일의 이름을 * .mm 파일로 변경했습니다.Xcode에서 object-Cpp를 사용하는 방법

"Undefined symbols for architecture x86_64: "_NSApplicationMain", referenced from: _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)"

내가 파일을 .o를 다룬 적이없는, 그래서 뭐가 잘못 됐는지 확실하지 않다 :

은 그럼 내가 엑스 코드에서이 다음과 같은 오류가 발생합니다. 도와주세요.

추신 : 최신 Xcode, 버전 (6.1.1)을 사용합니다.

+2

C++ 코드를 작성하려는 파일을 변경하기 만하면됩니다. main.m 파일을 다시 단일 m으로 변경하십시오. – DavidAndroidDev

+0

답장을 보내 주셔서 감사합니다. 나는 그것을 안다. object-cpp를 사용하려면 main.m 만 main.mm으로 변경해야합니다. 하지만이 오류의 원인을 알고 싶습니다. –

+0

나는 당신이 오해했다고 생각합니다. main.m 파일을 .mm으로 변경하면 안됩니다. C++ 코드를 작성해야하는 파일 만 .mm로 변경해야합니다. – DavidAndroidDev

답변

3

프로젝트 타겟의 빌드 단계 아래에있는 "링크 바이너리 라이브러리"섹션에 AppKit.framework를 추가하면 문제를 해결할 수 있습니다.

P. XCode가 .mm 파일이 아니라 .m 파일에 필요한 프레임 워크 (예 : AppKit.framework)를 자동으로 찾는 이유를 묻지 말고, AppKit.framework를 추가하면 NSApplicationMain이 AppKit에 정의되어 있기 때문에 문제가 해결됩니다. Cocoa.framework를 추가하면 Xcode가 자동으로 AppKit.framework와 연결되기 때문에 문제가 해결됩니다.

+0

어떻게 알았는지, 나는 결코 알 수 없을 것입니다. 물론 훌륭합니다. 나는 당신의 대답을 찾을 때까지 한 시간 동안 내 머리를 짚고있었습니다. AppDelegate.m의 이름을 AppDelegate.mm으로 바꾸고 싶을 때부터 시작되었습니다. – Volomike

관련 문제