Objective-C でプロジェクトをビルドするときにどのコードがコンパイルされるかを知りたいです。プロジェクト内のコードのすべての行、または main.c から呼び出され、次に呼び出されるコードからのみです。彼ら?
つまり、コンパイラはプロジェクトを単純に接続されたドメインに分離し、メインにリンクされているものをコンパイルしますか、それとも単にすべてをコンパイルしますか?
君たちありがとう!
Objective-C でプロジェクトをビルドするときにどのコードがコンパイルされるかを知りたいです。プロジェクト内のコードのすべての行、または main.c から呼び出され、次に呼び出されるコードからのみです。彼ら?
つまり、コンパイラはプロジェクトを単純に接続されたドメインに分離し、メインにリンクされているものをコンパイルしますか、それとも単にすべてをコンパイルしますか?
君たちありがとう!
コンパイラは、コードの意味分析を実行しません。コンパイルするように指示したとおりにコンパイルします。通常、Xcode は、すべてのファイルをアプリケーションにコンパイルする方法でコンパイラを呼び出します。ただし、クラス/関数が使用されていないファイルをコンパイル/リンクする必要はありません。ただし、クラス/関数を使用するファイルをコンパイルしないと、リンケージ エラーが発生します (つまり、コンパイラは、最終的な実行可能ファイルのオブジェクト コードをまとめるときに、バイナリ ファイル内のいくつかのシンボルを見つけることができません)。
プロジェクト内のすべてのファイルがコンパイルされます。ただし、どの .m ファイルからもインクルードされないヘッダー ファイル、または条件付きでインクルードが抑制されるヘッダーは除きます。