2012-03-21 47 views
6

này được lái xe cho tôi điên, khi tôi cố gắng để biên dịch trên giả lập, mọi thứ đều ok, nhưng trên thiết bị tôi đã nhận lỗi này:ld: thư viện không tìm thấy cho -lz

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

Xin hãy giúp tôi hiểu nguồn gốc của vấn đề:

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:

tôi đã nhập khẩu khuôn khổ libz.1.1.3.dylib: enter image description here

Các libz duy nhất mà tôi nhận được trong khuôn khổ Liên Kết là libz.1.1.3.dylib enter image description here

Trả lời

6

Bạn đã xác định thư viện libz.dylib trong mục Linked frameworks and Libraries chứ không phải là tài liệu tham khảo trực tiếp đến libz.1.1.3 - nói chung bạn nên sử dụng chung nhất phiên bản của thư viện để biên soạn thay vì một thư viện cụ thể hơn là

Thứ hai, đảm bảo rằng libz.dylib có trong SDK iOS - nếu thiếu, thì có thể là SDK được cài đặt sai (cài đặt lại nên khắc phục).

ví dụ:

find /Developer/Platforms -name libz.dylib 

nên kết quả trong một sản lượng không trống cho một libz.dylib dưới iPhoneOS5.0.sdk

Cũng thấy câu trả lời cho iPhone - Linker Error in Xcode 4.2 Preview, mà là một vấn đề tương tự như sau.

+0

Tôi đã nhập thư viện libz.1.1.3.dylib, vui lòng xem bản chỉnh sửa của tôi, đây là cách tôi biên dịch với trình mô phỏng, nhưng vì tôi cố gắng xây dựng một kho lưu trữ, tôi hiểu điều đó. – Luca

+0

Có, và trình mô phỏng sử dụng một vị trí khác với thiết bị. Bạn nên nhập khẩu 'libz.dylib' chung hơn là' libz.1.1.3' cụ thể. Hãy thử 'find/Developer/Platforms -name libz.1.1.3.dylib' và kiểm tra xem nó có được tìm thấy trong cả hai 'iPhoneOS5.0.sdk' * và * 'iPhoneSimulator5.0.sdk'. Nếu nó không được tìm thấy, thì tôi đề nghị thay thế nó bằng 'libz.dylib'. Bạn nên có lý do thuyết phục để sử dụng phiên bản libz '1.1.3' để tham chiếu đến phiên bản cụ thể đó (nói chung các thư viện này tương thích lên) – Petesh

+0

Khung libz duy nhất tôi có trong danh sách là' libz.1.1. 3.dylib', xin vui lòng có một cái nhìn o Cập nhật của tôi. – Luca

2

tôi đã nhận lỗi tương tự với một thư viện khác nhau:

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

để giải quyết này, dưới search paths ->user header search paths ->release tôi đặt:

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

ghi nhớ rằng tôi có được điều này chỉ khi tôi lưu trữ và lưu trữ của tôi là dựa trên sơ đồ giải phóng của tôi ..


cập nhật: Tôi nhận được cùng một vấn đề (trong một dịp/dự án khác) cho Thư viện lpods (ví dụ: cocoapods) .. cách tôi đã tìm ra để giải quyết điều này bằng cách nhận ra rằng bản dựng đã hoạt động tốt trên sơ đồ development của tôi nhưng không phải là sơ đồ debug của tôi. về cơ bản, lược đồ developmentkhông cho build active architectures only trong khi debug có. Tôi chỉ cần thay đổi debug thành không có trong tất cả các mục tiêu theo cocoapods

Các vấn đề liên quan