多数のMatch-Oリンカーエラーにうんざりした後、私はこれが意味することを知りたいです。試行錯誤の代わりに、これらの背後にある概念を知りたいと思います。具体的には、次の違いを知りたいです。
- 実行可能
- ダイナミックライブラリ
- バンドル
- 静的ライブラリ
- 再配置可能オブジェクトファイル
これらは、リンクセクションのMach-Oタイプ設定をクリックしたときに表示されるオプションです。いくつかの小さな定義や適切なコンテンツへのリンクも問題ありません。
多数のMatch-Oリンカーエラーにうんざりした後、私はこれが意味することを知りたいです。試行錯誤の代わりに、これらの背後にある概念を知りたいと思います。具体的には、次の違いを知りたいです。
これらは、リンクセクションのMach-Oタイプ設定をクリックしたときに表示されるオプションです。いくつかの小さな定義や適切なコンテンツへのリンクも問題ありません。
Mach-Oは、Machオブジェクトファイル形式の略で、実行可能ファイル、オブジェクトコード、共有ライブラリ、動的にロードされるコード、およびコアダンプのファイル形式です。UNIXユーザーの場合、これは似ていますa.out
が、改善されています。これは、MacOSXおよびiPhoneOSライブラリで実行可能ファイルに使用される形式です。
ご存知のように、iOSデバイス(iPhone、iPadなど)のアーキテクチャはARMv6(iPhone 2G + 3G、iPod Touch)とARMv7(iPhone 3GS、iPod Touch 2G + 3G)ですが、Xcodeで使用されるシミュレーターは主にi386プラットフォームで動作します。これは、ライブラリクライアントがシミュレータとデバイスに別々のターゲットを設定する必要があることを意味します。個別のターゲットはほとんどの情報を複製し、含まれている静的ライブラリのみが異なります。したがって、Mach-Oリンカーエラーが発生した場合、それはxcodeがそのターゲットデバイスのライブラリの1つにリンクするのに問題があることを意味します。その結果、コンパイルは失敗します。
今あなたの定義-