私はPython LispコンパイラといくつかのCリンカのソースでこの用語を見てきました。修正の定義?
私の推測では、フィックスアップはアライメントが正しいことを確認するアセンブリルーチンのラッパーですが、ここでは何もわかりません。
私はPython LispコンパイラといくつかのCリンカのソースでこの用語を見てきました。修正の定義?
私の推測では、フィックスアップはアライメントが正しいことを確認するアセンブリルーチンのラッパーですが、ここでは何もわかりません。
"fixup"はリンカー用語です。それのかなり良い議論がここにあります:
http://www.microsoft.com/msj/0797/hood0797.aspx
オブジェクトファイル(.oの、.OBJ)いくつかの外部シンボルを参照するときはいつでも、それが出力プレースホルダ「5を登録するにはアドレス0を入れて」のようなコードと"0をシンボル 'foo'の実際のアドレスで記入してください。他のいくつかのオブジェクトファイルは 'foo'を定義し、リンカーは戻って0を正しいアドレスに「修正」します。
ちなみに、誰も 'foo'を定義していないと、レトロな50のスタイルのエラーメッセージは、 '_fooへの参照を見つけることができません'、またはC++を使用している場合はあまり分かりません。
「foo」のアドレスがリンカーが挿入したい場所に合わない場合は、まれに「修正エラー」が発生します。一般に、これは相対的なオフセットが大きすぎるフィックスアップから発生します。
リンカーとローダーは、専門用語の多くを説明する興味深いインカー資源であり、ここにも、そこ以外のx86 CPUが含まれています
comp.compilersのモデレータから。
偉大な答えとリンク、ありがとうございます。 – skypher