2011-11-22 3 views
1

하나의 컴퓨터에서 MailCore 프레임 워크를로드하지 못하면 OS X launchd 데몬이 충돌합니다. 그러나 프레임 워크가 예상 위치에 있고 데몬이 내 컴퓨터와 다른 여러 컴퓨터에서 제대로 실행되고 있습니다. ' 누구든지 "이미지를 찾을 수 없음"오류의 원인을 알고 있습니까? 또는이 문제를 해결하는 방법? MailCore에 대한dylib : 이미지를 찾을 수 없지만 경로가 올바르게 표시됩니다.

/Library/Application Support/ArgusLink/bin/arguslinkd

설치 이름 :

/Library/Application Support/ArgusLink/bin/MailCore.framework/Versions/A/MailCore

바이너리가 설치되어로드 (및 launchd에 통해 실행)을 시도하는 것은 :

MailCore lib 디렉토리가 설치됩니다 이다 :

@loader_path/MailCore.framework/Versions/A/MailCore

MailCore는 i386 아키텍처 용으로 제작되었습니다. 데몬이 충돌 한 컴퓨터가 10.6.8을 실행 중입니다. 성공적으로 테스트했습니다.

전체 충돌 보고서 : 그 문제를 해결 한 이유에 관해서는 약간 퍼지 해요하지만

Process:   arguslinkd [349] 
Path:   /Library/Application Support/ArgusLink/bin/arguslinkd 
Identifier:  arguslinkd 
Version:   ??? (???) 
Code Type:  X86 (Native) 
Parent Process: launchd [1] 

Date/Time:  2011-11-22 08:58:30.117 -0500 
OS Version:  Mac OS X 10.6.8 (10K549) 
Report Version: 6 

Exception Type: EXC_BREAKPOINT (SIGTRAP) 
Exception Codes: 0x0000000000000002, 0x0000000000000000 
Crashed Thread: 0 

Dyld Error Message: 
    Library not loaded: @loader_path/MailCore.framework/Versions/A/MailCore 
    Referenced from: /Library/Application Support/ArgusLink/bin/arguslinkd 
    Reason: image not found 

Binary Images: 
0x8fe00000 - 0x8fe4162b dyld 132.1 (???) <A4F6ADCC-6448-37B4-ED6C-ABB2CD06F448> 
    /usr/lib/dyld 
+0

10.6.8을 실행하는 경우 x86_64 용으로 빌드해야합니까? (현재는 문제가되지 않는 것 같습니다 :-)) – prodigitalson

+0

응용 프로그램은 x86_64 (예 : 오래된 비디오)에서 쉽게 구할 수없는 라이브러리를 사용하므로 i386 만 사용합니다. 그러나 아니, 나는 그것이 문제라고 생각하지 않는다. –

답변

0

Dave Dribin's Blog의 조언에 따라, 나는 대신 @loader_path@rpath를 사용하여 전환. 나는 Runpath Search Paths@rpath/ 대신 @rpath을 사용했다

주 (라이브러리 로더 실행 파일과 같은 디렉토리에), 아니면 그렇지 않으면 "라이브러리를 찾을 수 없습니다"오류가 계속 것입니다.

0

"임베디드 바이너리"에 프레임 워크를 추가해야합니다 (임베드 된 바이너리에 링크 프레임 워크를 추가 할 때 자체를 추가 함) "링크 된 프레임 워크 및 라이브러리"가 아닌 "임베드 된 바이너리"에 프레임 워크를 추가해야합니다.