OSX 3

Redundant #include of module 'A' appears within 'B' 오류 해결 과정

레거시 C 모듈을 objective c 에서 사용하고 있었는데, Xcode를 업데이트 하면서 이런 오류가 발생하기 시작했다. 직역해보자면 B라는 곳에서 A 모듈에 대한 헤더포함(include)이 중복되었다 정도로 읽힌다. 맞다. 내가 사용하던 레거시 C모듈은 수많은 C 함수를 구조체에 함수 포인터 목록으로 만들어주는 작업을 전처리기만으로 수행한다. 그러다보니, 한 헤더에서 A.h를 여러번 include 하여 사용하고 있다. (이거 하느라 삽질 엄청한 과거의 기록이 새록새록) 그런데 왜 갑자기 이런 오류를 발생시켰을까? (예전까지 잘 사용했었음) 가장 먼저 찾아낸 것은 이 옵션이다. 모듈이 뭔지는 모르겠으나 C나 Objective C 코드도 모듈로 사용하게 한다고 한다. (이 옵션을 끄면 빌드문제는 해결됨..

어이 상실한 alloc init

최근 쉬지 않고 iPhone 앱을 개발 중이다. 계속 추가 요구사항이 들어와 어쩔 수 없는 일이다. 그나마 잠잠해지나 했더니, 4.0 등장 소식과 OS 3.2 업데이트. 하하, 혹시나 모를 위험에 대비하려 설치를 해보았는데, 이게 왠일 대부분 잘 작동하는데, 엄한 곳에서 죽는 일이 발생했다. 위치는 백그라운드 스레드에서 AutoReleasePool을 생성했는데, 생성하다가 죽는단다. 잘 돌아가던 코드였는데 참으로 이상하다 이상하다 이상하다 이상하다 이상하다 다섯번을 외치고 나서야 겨우 깨달았다. 멍청하게도 init 후 alloc을 해버린 것을. 그런데 기존에는 어째서 돌아갔을까? =_= 이 글을 보는 사람은 이런 실수 안하시기를 ^^;

OSX 에서 시작 프로그램 혹은 rc.init.d ??

내가 사용중인 매킨토시는 mac book 시리즈이다. (회사거) 나름 괜찮게 생각되는 랩탑이긴 하지만, 아무래도 101키 이상의 키보드가 아니면 타이핑 시에 너무도 괴롭다. 때문에 synergy를 이용하여 데스크탑의 키보드와 마우스를 공유하여 사용한다. 그러나 이게 또 매번 synergy 클라이언트를 실행하는 것은 불편하기 짝이 없는 일이다. 때문에 윈도우즈의 시작 프로그램이나 *nix계열의 rc.init 과 비슷한 녀석을 찾아보게 되었다. 시작프로그램 제어판의 내 계정에서 시작 프로그램을 등록 할 수 있다. 단, 응용프로그램이 등록 되기 때문에 쉘 스크립트 같은 녀석은 바로 등록 할 수 없는 형태로 되어 있어, 보통 Apple Script로 만들어 사용한다고 한다. rc.init /Library/Sta..

IT한 것/OSX 2009.10.21