私はiPhone用の静的ライブラリを作成しています。私がやっていることが推奨されているのか、別のアプローチをとるべきかと思います。iPhone/CocoaTouchのライブラリからライブラリにリンクする適切な方法
私が書いている静的ライブラリは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
実際、XCodeではこれが問題ありません。しかし、抽象的には、StackOverflowはすばやく簡単に*正しい答えを見つける場所にすべきです!あなたが知らない、またはあなたが確信が持てない場合は、回答として投稿しないでください。コメント内の質問を明確にするか、正しい答えを知るまで研究をしてください! :) – Olie