ld:找不到-lz的库

这让我很疯狂,当我尝试在模拟器上编译时,一切都很好,但在设备上我得到了这个错误:

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框架: 在此处输入图像描述

我在Linked框架中获得的唯一libz是libz.1.1.3.dylib 在此处输入图像描述

您确实在Linked frameworks and Libraries项中指定了库libz.dylib ,而不是直接引用libz.1.1.3 – 通常您应该使用库的最通用版本进行编译而不是更具体的库

其次,确保libz.dylib存在于iOS SDK下 – 如果缺少,则可能是错误安装的SDK(重新安装应该修复)。

 find /Developer/Platforms -name libz.dylib 

应该导致iPhoneOS5.0.sdklibz.dylib的非空输出

另请参阅iPhone的答案- Xcode 4.2预览中的链接器错误 ,这是一个类似的问题。

我用不同的库得到了同样的错误:

 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 onlydebug是肯定的。 我只是在cocoapods下的所有目标中将debug更改为no