Mac OS X 동적 링커 (dyld
)에는 DYLD_IMAGE_SUFFIX
과 같은 기능이 있습니다. 링크 된 모든 프레임 워크 또는 공유 라이브러리의 디버그 버전을 동적으로로드 할 수 있습니다. 그렇다면 완전히 별개의 .framework
번들이 필요하지 않습니다. 단순히 MyLibrary_debug
이라는 또 다른 공유 라이브러리를 작성하십시오. 예를 들어, 타이거 CoreFoundation에서 디버깅하고 (그들은 어쨌든 보안 업데이트를 받았지만,하지 않은 모습) 프로파일 변종 포함 위와 애플의 프레임 워크와
% ls -l /System/Library/Frameworks/CoreFoundation.framework/Versions/A/
total 20080
-rwxr-xr-x 1 root wheel 1M Sep 10 17:55 CoreFoundation*
-rwxr-xr-x 1 root wheel 6M Apr 24 2007 CoreFoundation_debug*
-rwxr-xr-x 1 root wheel 2M Apr 24 2007 CoreFoundation_profile*
을, 표준 "디버그"접미사는 _debug
입니다. Xcode 집합 내의 실행 파일의 일반 창에서 "프레임 워크로드시 [디버그] 접미사 사용"설정은 DYLD_IMAGE_SUFFIX=_debug
입니다. 당신은뿐만 아니라 _debug
를 사용하여 생각
좋은 생각,하지만 난 애플이 여러 차례 (someexamples)에 자신의 프레임 워크의 _debug
버전을 끊었다 때문에,하지 않는 것이 좋습니다. Leopard의 경우에만 libSystem
, libmx
및 libmathCommon
은 디버그 변형이 있지만 Snow Leopard에서는 다시 깨졌습니다 (직접 this problem).
디버그 라이브러리에 다른 접미어를 선택하는 경우 Apple 버그를 유발하지 말고 나머지 프레임 워크 (헤더, 자원 등)를 일반 변형과 디버그 변형간에 공유 할 수 있어야합니다.