ソースファイルをコンパイルするなどして得られた、機械語のプログラム(オブジェクトコード)を結合して、実行可能ファイルを作ります。
たとえば、C言語のプログラムは、複数のソースファイルによって構成されます。ほとんどの環境では、各ソースファイルをコンパイルして、別個のオブジェクトファイルに変換します。結果、複数のオブジェクトファイルが生み出されるわけですが、1つ1つのオブジェクトファイルは最終的なプログラムの一部分に過ぎませんから、1つに結合しなければ実行できるプログラムにはなりません。この結合する処理(リンク)を行うソフトウェアが、リンカです。
また、ライブラリの形で存在するプログラムも、リンクによって組み入れる必要があります。これには、前述したような一連の過程の中でリンクする静的リンクと、プログラムの実行中にリンクする動的リンクという2つの形式があります。前者の方法をとるライブラリを静的リンクライブラリ、後者の方法をとるライブラリを動的リンクライブラリ(DLL)と呼びます。
動的リンクの場合は、実行可能ファイルの中にローダ(ダイナミックリンカ)というプログラムを組み入れておき、実行時にリンクの処理を行います。ローダを組み入れる処理をリンカが担うこともありますし(インポートライブラリを用いる)、プログラマーがローダの処理をソースファイルに記述する方法もあります。
統合開発環境(IDE)では、リンカはその中に含まれています(Visual Studio の場合、link.exe がリンカの本体です)。コンパイラも含まれているため、通常、コンパイルとリンクの処理は、ビルドやメイクなどと呼ばれる1つの操作でまとめて行えます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |