삽질기/iPhone Dev2009. 8. 17. 16:26
Mac Apps 혹은 iPhone Apps 을 개발하다 보면 여러 이유에서 C, 혹은 C++ 로 개발된 라이브러리를 사용하게 됩니다.

제 경우에는 Core Audio 를 사용할 때, 이런 경우를 많이 접했는데요, 문제는 다음과 같았습니다.

 .h / .m 파일안에 C / C++ 헤더파일을 #import 하면 링크 에러가 발생합니다.

 무엇이 문제일까 고민을 하던 중, 결국 구글링으로 해결했습니다.

해결방법은

단순히 .m 파일을 .mm 으로 바꾸면 되는 것이었습니다.

일반적으로 .m 은 Obj-C 구현부가 들어가고, - implementation file - .mm 은 C, C++ 구현부를 의미 - implementation more file - 합니다.

XCode 는 파일 확장자를 보고 컴파일러를 선택한다고 합니다.

즉, .m 의 경우에는 obj-C 컴파일러를 사용하지만, .mm 의 경우에는 C++ 컴파일러 (물론 Obj-C 도 잘 소화합니다.)를 사용하게 되는 셈이지요.

의외로 복잡할 줄 알았던 문제가 간단히 해결되었습니다. :)

-코나-

덧. 출처..는 검색한 지 며칠이 좀 지나서 가물가물합니다.. 죄송.. 구글링중에 찾은 문서였는데.. ^^;
Posted by 코나