2010-06-04 33 views
5

Hoookay,dyld: Biblioteca de error no se ha cargado Mac OS

así que sé que estoy a punto de conseguir una docena de "cargar las ficticias lib" respuestas a esto, pero aquí va ...

basura. framework está exportando algunos objetos de otro proyecto (junk.app) para que pueda usarlo en un nodo remote.app en un clúster. Puedo compilar junk.framework (que me doy cuenta de que ya no significa nada con la carga dinámica) y compilar y vincular remote.app a junk.framework.

Sin embargo, cuando corro remote.app recibí esta preciosa joya de un error:

dyld: Library not loaded: @executable_path/../Frameworks/libtiff.dylib 
    Referenced from: /Users/slate/Documents/junk/build/Development/junk.framework/Versions/A/junk 
    Reason: image not found 

Creo que lo que está sucediendo es que se está cargando junk.framework libtiff.dylib desde un lugar determinado y se no puedo encontrarlo junk.framework es otro proyecto en el que estoy trabajando que acabo de construir (finalmente).

Cuando get info en libtiff.dylib en mi basura objetivo que se me da /Users/slate/Documents/osirix/osirix/Binaries/LibTiff/libtiff.dylib como un camino ... y tengo absolute path seleccionado. Entonces, ¿por qué no está buscando allí?

Uh ... ¿por qué está mirando @executable_path /../ ???? ¿Dónde diablos está ese escenario para poder cambiarlo?

Editar ---

otool -L me da esto:

/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.26.0) 
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.54.0) 
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0) 
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) 
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) 
@executable_path/../Frameworks/libtiff.dylib (compatibility version 11.0.0, current version 11.4.0) 
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3) 
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0) 
/System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 1327.73.0) 
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) 
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4) 
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) 
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0) 
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 34.0.0) 
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0) 

Respuesta

9

El ajuste @executable_path se especificó cuando libtiff.dylib fue construido. (Si construye su propio dylib o framework, es la configuración de compilación del directorio de instalación (INSTALL_PATH)). Se puede cambiar con el comando install_name_tool.

+0

AH así que es por eso que no pude encontrarlo. Gracias. –

Cuestiones relacionadas