본문 바로가기

Apple - IPhone / IPod Touch

091013 일지 - Object-C 와 C++ 이 만나다.

오늘은 Object-C 와 C++ 이 만난 날이다.

개발 환경이 C++ 에서 어쩔 수 없이 Object-C 로
바뀌면서 많은 것들을 희생해야만 했다.

하지만 반가운 소식. Object-C 에서도 C++ 로 만들어진
라이브러리를 잘 하면 쓸 수 있다는 것이였다.

테스트 삼아 C++ 소스를 진행하고 있는 프로젝트에
적용해 보았지만, 아니나다를까 역시 수많은 에러코드를
내뿜어내는 우리 안착한 Object-C 씨. ㅠ.ㅠ

해서 구글링을 통해 얻은 정보를 통해 이것 저것 닥치는데로 수정에 수정을 거듭한 끝에
발생하는 모든 에러코드를 잡는데 성공. 아, 마지막 까지 잡히지 않은 에러코드가 2개 있었음.

error :  expoected "=", "," ";" , "asm" "__attribute__" before '클레스명'

이 에러코드를 수정하는데 무려 하루 죙일 이라는 시간이 투자 되었다.

문제는 소스 코드의 확장자 문제였는데. (이미 알고 있었는데)
C++ 소스를 Object-C 에서 사용하기 위해서는 C++ 소스 파일의 확장자를
.cpp 에서 .mm 으로 바꿔주어야 한다는 것이다. 알고 있었던 내용이고 적용도 했는데 왜 에러가 날까...?




한참을 고민한 끝에 해결책을 발견하고야 말았다.

알고보니 C++ 소스파일 뿐 아니라, C++ 소스 파일을 로드시키거나 연결된 파일들은 거의 모두 .m 에서 .mm 으로
변경해야 한다는 것.

이렇게 해당되는 소스코드의 확장자를 모두 수정하였더니 제대로 작동하기 시작했다.

아... 2009년 10월 13일은 역사적인 Object-C 와 C++ 이 만난 날이다. ^__^;