28

<zlib.h>iPhoneアプリケーションとBradLarsonから提供されたMoleculesのサンプルコードをモックアップしたソースコードを含めましたが、プロジェクトをビルドすると、次のようなエラーが返されます。これがライブラリリンクの問題なのか、それとも何か他のものが欠けているのか、誰かが私に指摘できますか?

"_deflate", referenced from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o "_inflateEnd", 
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "inflateInit2", 
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "_inflate", 
referenced from: -[NSData(Gzip) initWithGzippedData:] in NSData+Gzip.o "_deflateEnd", 
referenced from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o "deflateInit2", referenced 
from: -[NSData(Gzip) gzipDeflate] in NSData+Gzip.o ld: symbol(s) not found collect2: ld 
returned 1 exit status
4

2 に答える 2

82

ターゲットのタブで、セクションBuild Settingsまで下にスクロールし、フィールドにあることを確認します。これは組み込みのzlibにリンクし、エラーはなくなるはずです。Other Linker Flags-lz

リンカーフラグを変更した後、再度ビルドする前にメニューCleanから選択する必要があります。Product

lzスクリーンショット

于 2008-11-14T05:05:50.940 に答える
47

プロジェクトに libz を追加します。これを行うには、Xcode で次の手順に従います。

  1. プロジェクトを開き、プロジェクト ターゲットを選択してから、ツールバーの青いプロジェクト情報アイコンをクリックします (または ⌘I を押します)。
    例 1
  2. 画面の左下隅にある + ボタンをクリックしてライブラリを追加し、ライブラリ リストの一番下までスクロールして、libz.dylib を選択します。追加ボタンをクリックします。
    例 2
  3. [追加] をクリックすると、リンクされたライブラリのすべてのリストにライブラリ名が表示されます。これで、リンク エラーなしでプロジェクトをビルドできるようになります。
    例 3

これと同じ方法を使用して、リストから任意のライブラリを追加できます。ライブラリがリストに表示されない場合は、それが標準の iPhone SDK の一部ではないことを示しているため、ソリューションを再考するか、自分でライブラリを静的に構築してターゲットをリンクする必要がある場合があります (可能であれば)。

于 2008-11-14T05:15:23.183 に答える