私は 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 [ビルドしますが、これは正しく、受け入れられますか?]