2011-11-22 28 views
23

.a(例:libcrypto.a)ファイルとは何ですか?それらのファイルは何から構成されていますか? .mまたは.oまたは.hまたは.cファイルですか?.a(libcrypto.a)ファイルとは何ですか?

どのようにIOS SDK/Xcodeがそれらを理解していますか? .aファイルをxcodeプロジェクトに含めると、対応するソースファイルもコピーする必要がありますか?

+0

、これに新しいイム、それが存在する場合、くぼみは、あなたがポインタ 感謝のために:)あなたの返事マット、 ため – chetan

答えて

39

.aファイルは、static libraryファイルです。それらは、1つ以上の.oファイル、すなわちコンパイルされたコードを「含む」。それらを使用するには、コンパイルされたコードに対応するヘッダファイル(.h)が必要ですが、ソースコード(.c.m)は必要ありません。

.aファイルがarユーティリティで生成され、コンパイラによって呼び出される(通常は)リンカー(ld)は、その形式とどのようにアーカイブからして、実行ファイルにコードの関連部分を抽出することを知っています。そのため申し訳ありません

+0

おかげで、私は、サンプルプロジェクトのための静的ライブラリは.aファイルを作成し、コピーした、知っていました他のプロジェクトのヘッダーと.aファイルしかし、私がデバッグモードでメソッドにアクセスしようとすると、コントロールは対応する.mファイルのメソッドを指しています。これは.aファイルを作成したものです。 .hと.aファイルだけを追加した場合、.mファイルを開くのはなぜですか。 – chetan

+0

デバッグ情報には、ファイル名と行番号が含まれています。この情報は '.o'ファイルに含まれているので、デバッガはあなたが見ている命令をどのソースコードが生成したかを表示することができます。それがなければ、それほど有用ではないアセンブリしか見ることはできません。十分な情報がある場合、IDEはそのデバッグ情報を実際のソースコードファイルにマップできます。 – Mat

+0

ありがとう、だから、デバッグモードでのみ、IDEはソースファイルを指し、.oファイルのため実行時ではないと言いますか? プロジェクトをその場所からデバッグモードで削除すると、「xcodeがソースファイルを見つけることができませんでした」というエラーが表示され、そこで破損します。 しかし、私が実行時に行くと、エラーはありません – chetan