2011-06-09 11 views
16
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 

このエラーを修正するにはどうすればよいですか?Xcode 4.2 Developer Previewのリンカエラー

私はiOSのビルドをコンパイルしますが、Mac OSの展開ターゲットについてはエラーが発生します。

答えて

3

プロジェクト定義のlibz dylibのバージョンを、XCode 4.2が提供しているものに更新します。異なるターゲットに対して同じコードをコンパイルする場合は、それぞれのライブラリのバージョンを確認してください。

SDK 3.2以来、すべてのバージョンのlibzは、最後のバージョン(SDK 4.3のlibz.1.2.3)へのシンボリックリンクです。したがって、あなたが選んだlibz-versionに関係なく、最後のバージョンを取得します。 /Developer/Platforms/iPhoneOS.platform/DeviceSupport/Latest/Symbols/usr/libを参照してください。

Appleが今後何をするのか分かりません。 libzにリンクすると、最新のバージョンにリンクし続ける可能性が高くなります。ライブラリ(libz-X)のメジャー番号を変更すると互換性が損なわれる可能性があるので、現在のバージョンと同じバージョンをリンクし続けるのがより安全な選択です。あなたの選択。

43

リンクする必要がありますlibz.dylib特定のバージョンではありません。正しいバージョンが自動的に使用されます。

+0

非バージョン固有のdylibへのリンクが自動的に最新のものを使用することを示す関連ドキュメントを指すことができれば、この回答は大幅に改善されます。 – memmons

+3

シンボリックリンクを使用してマイナーバージョン番号の変更を隠すことは、共有ライブラリが存在する限り使用されています。ユビキタスかつ古代です。あなたは、ドキュメンテーションがどこに定義されているのか/デフォルトのパス・セパレータとして尋ねるかもしれません - 私はそれがUNIX標準のどこかに埋もれていると確信していますが、特にこの回答に追加するのは賢明ではないと思います。あなたがそれを掘り起こす時間を費やしたいならば、私の答えを編集しても構いません。 – Jim

+1

ご清聴ありがとうございます。私は尋ねました。なぜなら、C++のバックグラウンドから来ていないからです。私はそれがXcode固有のものだと思っていました。ところで、私はすでに答えをアップアップしました。 – memmons

関連する問題