web-dev-qa-db-ja.com

コンパイラは、ソースコードを変換する必要があるターゲットプロセッサの機械語をどのようにして知るのでしょうか。

例:2台のマシンが同じコンパイラと同じオペレーティングシステムを持っている。しかし、2つのマシンには異なるプロセッサー(異なるアセンブリー命令)があります。オペレーティングシステムに関してコンパイラーがダウンロードされたので、ソースコードはどのように各プロセッサーのマシン言語に変換されますか?

5
rahul8383

基本的に、構成オプションを使用します。

複数のバックエンドを理解するコンパイラーは、通常、コンパイラー自体が実行されているプラ​​ットフォーム(os +プロセッサー・タイプ)にソース・コードをコンパイルする必要があると想定します。その他はすべてクロスコンパイルであり、コマンドラインスイッチまたは構成ファイルを介して指定する必要があります。

13
Kilian Foth

異なるコンパイラを使用している。

ARMのGCCコンパイラは、x86用にコンパイルされたGCCとは異なります。同じソースを共有する場合がありますが、コンパイルすると、2つの異なるプログラム、異なるコンパイラになります。

あなたは異なるステップを持っています、

たとえば、x86で作業している場合、コンパイラをコンパイルしてx86で実行できますが、コンパイルしてARMで実行することもできます。

コンパイラをARMで実行したら、それを実行してARMプログラムを出力するだけでなく、x86プログラムを出力することもできます。

3
Pieter B