基本的な質問がたくさん頭に浮かびます。それらをクリアする必要があります。
ステートメント1:コンパイラーは、人間が読み取れるコードをオブジェクトコードに変換し、それらはリンカーによってマシンコード(実行可能)に変換されます。
私はここにいますか?
ウィキペディアでは、
Object files are produced by an assembler, compiler, or other language
translator, and used as input to the linker.
質問1:アセンブラはアセンブリ言語コード(MOV A, B
ADD C
)を機械語に変換します。C ++のような高級言語の場合、それは上記のリンカーによって生成されます。したがって、アセンブラはどこにも使用されません。では、上記のようにオブジェクトファイルを作成するにはどうすればよいでしょうか。
中間コードは、コードをさまざまなアーキテクチャで実行するために生成されます。
質問2: * .class(バイトコード)ファイルはJavaコンパイラオブジェクトファイルによって作成されていますか?はいの場合、それらを実行するJVMは一種のリンカーであると言えますか(ただし、実行可能ファイルは作成されません)。
質問3: Turbo C++でC++プログラムをコンパイルすると、オブジェクトファイルである*.objファイルが取得されます。それらを使用して、他のアーキテクチャで実行可能ファイルを生成できますか?