ld: библиотека не найдена для -lz - PullRequest
6 голосов
/ 21 марта 2012

Это сводит меня с ума, когда я пытаюсь скомпилировать на симуляторе, все в порядке, но на устройстве я получил эту ошибку:

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

Пожалуйста, помогите мне понять источник проблемы:

    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

РЕДАКТИРОВАТЬ:

Я импортировал среду libz.1.1.3.dylib: enter image description here

Единственный libz, которыйпопал в связанные рамки это libz.1.1.3.dylib enter image description here

Ответы [ 2 ]

6 голосов
/ 21 марта 2012

Вы указали библиотеку libz.dylib в элементе Linked frameworks and Libraries, а не прямую ссылку на libz.1.1.3 - в общем случае для компиляции следует использовать наиболее общую версию библиотеки, а не более конкретную

Во-вторых, убедитесь, что libz.dylib присутствует в iOS SDK - если он отсутствует, то это может быть неправильно установленный SDK (переустановка должна исправить это).

т.е.

find /Developer/Platforms -name libz.dylib

должен привести к непустому выводу для libz.dylib под iPhoneOS5.0.sdk

Также см. Ответ на iPhone - Ошибка компоновщика в Xcode 4.2 Preview , которыйаналогичная проблема с этим.

2 голосов
/ 30 марта 2013

Я получил ту же ошибку с другой библиотекой:

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

, чтобы решить эту проблему, в search paths -> user header search paths -> release я поставил:

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

Имейте в виду, что я получаю эту ошибку только при архивации, и мой архив основан на моей схеме выпуска ..


обновление: У меня возникла та же проблема (в другом случае / проекте) для библиотеки lpods (т. е. cocoapods). Я решил, как решить эту проблему, понимая, что сборка работает нормально по моей development схеме, но не по моей debug схеме.в основном схема development имела нет для build active architectures only, тогда как debug имела да.Я просто изменил debug на no в all цели под cocoapods

...