7

私は iPhone 用の静的ライブラリを作成していますが、私が行っていることが推奨されるのか、それとも別のアプローチを取るべきなのか疑問に思っています。

私が書いているスタティック ライブラリは、libxml2 に依存しています。libxml2 には動的ライブラリ (dylib) と静的ライブラリ (a) があります。私は2つのアプローチを試みました。

アプローチ 1 - 「-lxml2」を「その他のリンカー フラグ」に追加してスタティック ライブラリにリンクしようとすると、ビルドが失敗し、次のメッセージが表示されます。

/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library)

アプローチ 2 - 静的ライブラリから動的ライブラリに正常にリンクできますが、iPhone でこれが許可されているかどうか (または適切なアプローチ) がわかりません。私は静的ライブラリを構築していますが、Apple は動的ライブラリにリンクする静的ライブラリを許可していますか? 私はまだ静的ライブラリについて学んでいますが、dylib のコードを私のコードと組み合わせて 1 つのライブラリを作成することを理解しているため、dylib に対するリンクは問題になりません。

要約する:

  • mylibrary.a -> libxml2.a [動かない]
  • mylibrary.a -> libxml2.dylib [ビルドしますが、これは正しく、受け入れられますか?]
4

3 に答える 3

8

libxml2.dylib は SDK で利用できます。正しい方法は、Xcode でターゲット ノード/アプリをダブルクリックし、[全般] で [リンクされたライブラリ] の下の [ + ] をクリックすることです...そのリストにlibxml2.dylibが見つかるはずです。

0:42 このスクリーンキャストでは、CoreGraphics がプロジェクトに追加される様子を見ることができます。

于 2009-03-08T09:44:16.807 に答える
-8

Apple は、SDK で提供されるもの以外のフレームワークやライブラリをリンクすることを許可していません。

マルコ

于 2009-03-08T09:28:13.473 に答える