リンケージエディタ リンクの種類

リンケージエディタ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/22 18:07 UTC 版)

リンクの種類

静的リンク

静的リンクは、リンク時に他のオブジェクトやライブラリをすべて1つのファイルに結合する方法。この方法では、出来上がったプログラムは、単独で動作することができる。単独で動作させなければならない組み込み向けプログラムなどでよく使われる。必要とされるすべてのライブラリを組み込むため、出来上がったプログラムはその分だけ大きくなる。

動的リンク

動的リンクは、リンク時にライブラリの参照を名前のみで解決してプログラムを作る方法。出来上がったプログラムにはライブラリの部分のプログラムは含まれないのが特徴である。そのプログラム実行時に、ライブラリ空間上の実際のプログラムと結合し、実行する(この作業は通常ローダと呼ばれるプログラムが行う)。出来上がったプログラムの大きさが小さくなる、プログラムを再度リンクしなくてもライブラリだけ入れ替えることができるなどの利点があり、現在広く使われている。

C言語の標準ランタイムライブラリのような汎用ライブラリは動的リンクするものの、ユーザー定義のライブラリは静的リンクする、あるいは汎用ライブラリは静的リンクするものの、ユーザー定義のライブラリは動的リンクする、両方動的リンクする、両方静的リンクする、といった組み合わせがあり、用途によって使い分けることもある。

リンクの処理(静的リンク)

静的リンクでは、おおむね以下の処理が行われる。

ファイルの連結
分割コンパイルによってオブジェクトファイルが複数ある場合、連結して単体のファイルとする。
ライブラリ内のファイルの連結
ライブラリの関数を呼び出している場合は、ライブラリ内のオブジェクトファイルも連結される。
OS固有コードの追加
OSによって決められたスタートアップコードやメタ情報を追加する。
アドレスの解決
ソース内で使用した関数や変数の名前は、最終的にはすべてメモリアドレスに置き換えられる。リロケータブルなプログラムではこれはプログラム先頭等からの相対アドレスとなるが、プログラム全体のサイズがわかるまでは相対アドレスを決定する事はできないため、この処理はリンク時に実施される。

リンクの処理(動的リンク)

動的リンクにおいては、ローダをなんらかの方法で実行ファイルに加えなければならない。

  • あらかじめ用意されているローダを静的リンクする。プログラマから見ると、インポートライブラリの静的リンクやリンケージエディタのオプション設定等の形となる。
  • プログラマが、API等を直接呼び出してローダのコードを書く(この方式ではリンケージエディタは動的リンクに関与しない)。



「リンケージエディタ」の続きの解説一覧




リンケージエディタと同じ種類の言葉


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「リンケージエディタ」の関連用語

リンケージエディタのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



リンケージエディタのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのリンケージエディタ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS