16 votes

Erreur de lien dans Xcode 4.2 Aperçu des développeurs

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: bibliothèque introuvable pour -lz.1.2.3*
collect2: ld a renvoyé 1 état de sortie
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 échoué avec le code de sortie 1

Comment réparer cette erreur ?

C'est très étrange -- je compile une version pour iOS, mais je reçois une erreur concernant la cible de déploiement Mac OS.

43voto

Jim Points 39574

Vous devriez lier libz.dylib pas une version spécifique. La version correcte est utilisée automatiquement.

3voto

Jano Points 37593

Metà jour la version de libz dylib dans ta définition de projet vers celle fournie par ton XCode 4.2. Si tu compiles le même code pour différentes cibles, vérifie la version de la bibliothèque sur chacune d'entre elles.

Depuis le SDK 3.2, toutes les versions de libz sont des liens symboliques vers la dernière version (libz.1.2.3 dans le SDK 4.3), donc peu importe la version de libz que tu choisis, tu obtiens la dernière. Voir /Developer/Platforms/iPhoneOS.platform/DeviceSupport/Latest/Symbols/usr/lib.

Je ne sais pas ce qu'Apple fera à l'avenir. Si tu lies à libz, tu es susceptible de continuer à lier à la dernière version. Un changement dans le numéro majeur de la bibliothèque (libz-X) pourrait rompre la compatibilité, donc le choix le plus sûr est de continuer à lier à la même version que celle que tu as maintenant. À toi de décider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X