2012-03-21 14 views
6

Esto me está volviendo loco, cuando intento compilar en el simulador, todo está bien, pero en el dispositivo Tengo este error:ld: biblioteca no se encontró para -lz

ld: library not found for -lz 
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1 

Por favor, me ayudan a entender la fuente del problema:

Ld /Users/ZConsulting/Library/Developer/Xcode/DerivedData/Fontenay-sous-Bois-dhlecgdgtoldsadoctkyueriyius/Build/Products/Debug-iphoneos/Fontenay-sous-Bois.app/Fontenay-sous-Bois normal armv7 
     cd /Users/ZConsulting/Desktop/Fontenay-sous-Bois 
     setenv IPHONEOS_DEPLOYMENT_TARGET 5.0 
     setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
     /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -L/Users/ZConsulting/Library/Developer/Xcode/DerivedData/Fontenay-sous-Bois-dhlecgdgtoldsadoctkyueriyius/Build/Products 
/Debug-iphoneos -F/Users/ZConsulting/Library/Developer/Xcode/DerivedData/Fontenay-sous-Bois-dhlecgdgtoldsadoctkyueriyius/Build/Products/Debug-iphoneos -F/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 
/iPhoneOS5.0.sdk/Developer/Library/Frameworks -filelist /Users/ZConsulting/Library/Developer/Xcode/DerivedData/Fontenay-sous-Bois-dhlecgdgtoldsadoctkyueriyius/Build/Intermediates/Fontenay-sous-Bois.build/Debug-iphoneos/Fontenay-sous-Bois.build/Objects-normal/armv7/Fontenay-sous-Bois.LinkFileList -dead_strip -fobjc-arc -miphoneos-version-min=5.0 -framework SenTestingKit -lz -lz.1.1.3 -framework MobileCoreServices 
-framework SystemConfiguration -framework CFNetwork -framework CoreLocation -framework MapKit -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/ZConsulting/Library/Developer/Xcode/DerivedData/Fontenay-sous-Bois-dhlecgdgtoldsadoctkyueriyius/Build/Products/Debug-iphoneos/Fontenay-sous-Bois.app/Fontenay-sous-Bois 

EDIT:

me importó el marco libz.1.1.3.dylib:

La única libz que me dieron en los marcos Vinculados es la libz.1.1.3.dylib enter image description here

Respuesta

6

Hiciste especificar la biblioteca libz.dylib este artículo Linked frameworks and Libraries en lugar de la referencia directa a libz.1.1.3 -, en general, se debe utilizar la más genérica versión de una biblioteca para compilación en lugar de una más específica

En segundo lugar, asegúrese de que el libz.dylib está presente en el SDK de iOS; si falta, puede ser un SDK mal instalado (la reinstalación debería arreglar eso).

es decir

find /Developer/Platforms -name libz.dylib 

debe resultar en una salida no vacío para un libz.dylib bajo iPhoneOS5.0.sdk

Véase también la respuesta a iPhone - Linker Error in Xcode 4.2 Preview, que es un problema similar a este.

+0

he importados libz.1.1.3.dylib la biblioteca, por favor, eche un vistazo en mi edición, este está trabajando con compilo con el simulador, pero desde Intento crear un archivo, lo tengo. – Luca

+0

Sí, y el simulador utiliza una ubicación diferente al dispositivo. Es mejor importar el genérico 'libz.dylib' en lugar del' libz.1.1.3' específico. Pruebe el 'find/Developer/Platforms -name libz.1.1.3.dylib' y compruebe que se encuentra en ambos' iPhoneOS5.0.sdk' * y * 'iPhoneSimulator5.0.sdk'. Si no se encuentra, entonces sugiero que se reemplace con 'libz.dylib'. Debe tener una razón de peso para usar la versión '1.1.3' de libz para hacer referencia a esa versión específica (en general, estas bibliotecas son compatibles) – Petesh

+0

El único marco de libz que obtuve en la lista es' libz.1.1. 3.dylib', por favor eche un vistazo a mi Actualización. – Luca

2

conseguí el mismo error con una biblioteca diferente:

ld: library not found for -lssl 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Para resolver esto, bajo search paths ->user header search paths ->release puse:

"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts/include" 

tener en cuenta que consigo este error solo cuando archivo, y mi archivo está basado en mi esquema de publicación ..


actualización: tengo el mismo problema (en una ocasión/proyecto diferente) para la Biblioteca lpods (es decir cocoapods) .. la forma en que me di cuenta de resolver esto es por darse cuenta de que la acumulación funcionó bien en mi esquema de development pero no mi esquema debug. básicamente el esquema development tenía no para build active architectures only mientras que debug tenía sí. Simplemente cambiado debug en no en todos los objetivos previstos en cocoapods

Cuestiones relacionadas