2017-10-26 13 views
1

フレームワークをプロジェクトに追加するとき、Cocoapodsを使用するか手動で行う場合は、ヘッダーファイルのみが含まれます。 Xcodeから、 "Jump to definition"を使用すると、定義がありません(.mファイルがないことを意味します)。Xcodeプロジェクトにフレームワークまたはライブラリを追加した場所はどこですか?

ライブラリ内の関数が呼び出されると、.mファイルがプロジェクトに含まれていないと、コンパイラはその実装をどのように取得しますか?実行可能ファイルを構築する、幾分単純化した方法でそれを置くために

+0

コンパイラの実装を取得していません。すでにフレームワークバイナリで実装されています。 Linkerは、コード内のメソッド呼び出しをフレームワーク内の実装とリンクします。 –

答えて

3

は、通常、少なくともこれら二つの段階を経る:バイナリコードにソースコードをオン

  • コンパイル。
  • リンク、バイナリコードのチャンクを実行可能ファイルに「接着」します。

フレームワークには、既にコンパイルされたバイナリ形式の実装が含まれる場合があります。これらは、とコンパイルされたソースとがリンクされています。コンパイラは決してそれらに触れることはなく、それらを記述するファイルは.hである必要があります。コードと一緒にステッチするのはリンカーの仕事です。

あなたが被写体にもっと知りたい場合は、次の質問に対する答えは、より詳細な情報が含まれています:

+0

+1良い、簡単な答え。ソースファイルの場所を含め、デバッグ情報を持つソースに「リンク」されているフレームワークのデバッグバージョンであることを明確にすることができます。 – greymouser

関連する問題