2011-06-19 7 views
1

与えられたISAのさまざまな言語のオブジェクトコードに共通するリンカーですか?または、さまざまな言語で、基盤となるプラットフォームに別のリンカーが必要なのでしょうか?私はリンカがシステムソフトウェアであることを理解しており、すべてに共通するはずですか?すべての言語への共通リンカー

答えて

0

まずリンカがオブジェクトコードをリンクしていることを理解する必要があります。このオブジェクトコードは、マシン(および通常はオペレーティングシステム)固有のものです。いくつかの異なる標準オブジェクトコード形式があります。リンカは、異なるマシンアーキテクチャのオブジェクトコードをリンクすることはできません。たとえそれができたとしても、それは実行されません。つまり、コンパイラが同じマシン上で実行され、場合によっては同じオペレーティングシステムで実行されている限り、ほとんどの場合、オブジェクトコードを異なる言語からリンクすることができます。例えば、C言語でプログラムを作成し、それをPascalオブジェクトファイルにリンクしたい場合、これは通常動作します。最も一般的なオブジェクトコード形式はCOFF object codeです。 COFFコードは、ほぼ普遍的に受け入れられるオブジェクトコードの標準フォーマットです。コードを生成するためにどの言語コンパイラを使用するかは関係ありませんが(同じマシンアーキテクチャのものであれば)、ほとんどのリンカはCOFFファイルをリンクできることを理解しています。

関連する問題