2

Objective-C でプロジェクトをビルドするときにどのコードがコンパイルされるかを知りたいです。プロジェクト内のコードのすべての行、または main.c から呼び出され、次に呼び出されるコードからのみです。彼ら?

つまり、コンパイラはプロジェクトを単純に接続されたドメインに分離し、メインにリンクされているものをコンパイルしますか、それとも単にすべてをコンパイルしますか?

君たちありがとう!

4

3 に答える 3

4

コンパイラは、コードの意味分析を実行しません。コンパイルするように指示したとおりにコンパイルします。通常、Xcode は、すべてのファイルをアプリケーションにコンパイルする方法でコンパイラを呼び出します。ただし、クラス/関数が使用されていないファイルをコンパイル/リンクする必要はありません。ただし、クラス/関数を使用するファイルをコンパイルしないと、リンケージ エラーが発生します (つまり、コンパイラは、最終的な実行可能ファイルのオブジェクト コードをまとめるときに、バイナリ ファイル内のいくつかのシンボルを見つけることができません)。

于 2012-07-05T18:25:51.150 に答える
3

プロジェクト内のすべてのファイルがコンパイルされます。ただし、どの .m ファイルからもインクルードされないヘッダー ファイル、または条件付きでインクルードが抑制されるヘッダーは除きます。

于 2012-07-05T18:26:45.370 に答える
2

Xcode プロジェクトは、1 つ以上のターゲットで構成されます。

定義できるターゲットごとに、コンパイルされる *.m ファイル

ターゲット用にコンパイル

プロジェクトに新しいファイルを追加する場合、追加するターゲットを指定できます。(実際、ここはメインターゲットが選択されていないところをよく見かけます — 注意してください)

ここに画像の説明を入力

于 2012-07-05T18:43:18.563 に答える