Objective-Cプログラムをコンパイルしようとしているときにリンカの問題が発生していますが、私が問題を理解できない理由が無知コンパイラのプロセスに関して。Objective-Cのコンパイル中に何が起こったか
誰かが編集中の手順の概要を教えてもらえますか?
私は現在のプロセスを理解し、これは次のとおりです。
コンパイラのコピーがいずれかの内容は、それが中で定義されたファイルに.hファイルを含め、コンパイラがいるかどうかを追跡しません。 hファイルは既にインクルードされているため、プロジェクト内に複数回含まれる可能性があります。
すべての.mファイルは、同等のCコード(オブジェクトコードにコンパイルされています)にコンパイルされます。
リンカは、.hファイルの宣言とオブジェクトコード内の適切な関数との間にリンクを作成します。適切な関数は、同じ名前の.mファイルでそれらを探すことによって決定されます。
オブジェクトファイルは、実行可能ファイルを形成するために一緒に接続され、メイン関数が実行可能ファイルのエントリポイントにあることを確認します。スペースを節約するために宣言はおそらく削除されるでしょうか?
これは(それができない場合がある)が正しいと仮定すると、これはおそらく、あなたはおそらく、リンカの問題が発生する複数のメソッド定義になってしまいますので、あなたが.Mファイルを#includeすることはありませんことを意味します。
誰でもこの照明に感謝します:)。
乾杯、
ダニー
ああ、それは素晴らしいです。今はもっとはっきりしており、私はリンカーの問題を解決しました!どうもありがとう! :) – Danny