Ошибка компоновщика в Xcode 4.2 Developer Preview - PullRequest
16 голосов
/ 09 июня 2011
d /Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator/Goozzy.app/Goozzy normal i386
cd /Users/yariksmirnov/Desktop/Goozy/branches/new
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator -F/Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator -filelist /Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Intermediates/Goozzy.build/Debug-iphonesimulator/Goozzy.build/Objects-normal/i386/Goozzy.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -D__IPHONE_OS_VERSION_MIN_REQUIRED=40300 -framework CoreData -lz.1.2.3 -framework MobileCoreServices -framework SystemConfiguration -framework CFNetwork -framework QuartzCore -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/yariksmirnov/Library/Developer/Xcode/DerivedData/Goozzy-cugjuvvsrzjqwvfiicxtykbqagux/Build/Products/Debug-iphonesimulator/Goozzy.app/Goozzy

*ld: library not found for -lz.1.2.3*
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

Как я могу исправить эту ошибку?

Это очень странно - я компилирую сборку для iOS, но получаю ошибку о цели развертывания Mac OS.

Ответы [ 2 ]

43 голосов
/ 09 июня 2011

Вы должны указать libz.dylib, а не какую-либо конкретную версию. Правильная версия используется автоматически.

3 голосов
/ 09 июня 2011

Обновите версию libz dylib в определении вашего проекта до того, что предоставляет ваш XCode 4.2.Если вы компилируете один и тот же код для разных целей, проверьте версию библиотеки на каждой из них.

Начиная с SDK 3.2 все версии libz являются символическими ссылками на последнюю версию (libz.1.2.3 в SDK 4.3)Таким образом, независимо от того, какую libz-версию вы выберете, вы получите последнюю.См. /Developer/Platforms/iPhoneOS.platform/DeviceSupport/Latest/Symbols/usr/lib.

Я не знаю, что Apple сделает в будущем.Если вы ссылаетесь на libz, вы, вероятно, будете продолжать ссылаться на последнюю версию.Изменение основного номера библиотеки (libz-X) может привести к нарушению совместимости, поэтому более безопасный выбор - продолжать ссылаться на ту же версию, что и сейчас.Ваш выбор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...