XCodeの静的ライブラリと動的ライブラリの違いは何ですか? また、Apple が iOS アプリケーションで動的ライブラリを使用することを許可しないのはなぜですか?
3 に答える
Mac OS X 用の動的ライブラリを構築することはできますが、それらを iPhone 開発に使用することはできません。
静的ライブラリは、それに対してリンクするプログラムに取り込まれるオブジェクト ファイルの単なるアーカイブです。リンカはすべてのアーカイブ ファイルを解凍し、リンク中に残りのオブジェクト ファイルと一緒に取り込みます。
ただし、動的ライブラリは共有オブジェクト ファイルを作成します。これはプログラムに似ていますが、エントリ ポイントはありません。プログラムは、シンボルを自分自身にプルすることなく、これらの共有ライブラリにリンクしてシンボルを呼び出すことができます。
ライブラリを電話にインストールする方法がないため、動的ライブラリは iPhone アプリには意味がありません。Apple が動的ライブラリを使用しないことにしたと述べたいくつかのドキュメントを読んだことを覚えています。アプリごとに 1 つのバンドルをインストールする方がずっと簡単です。
Apple では動的ライブラリの作成を許可しています。Mac OS X では、これらは .bundle または .dylib で終わります (Linux のような .so や .a ではありません)。
具体的に何をしようとしているのですか?dylib のターゲットを作成しましたか?