リンク時 (: link time)とは、計算機科学では、コンピュータプログラムの作成中に、そのプログラムにリンカーが適用される段階を指す[1][2][3]。 リンク時はコンパイル時の後、ランタイムプログラム実行される時)の前に発生する。

この用語は、リンク時操作(リンカーによって実行される操作)またはリンク時要件(正常にリンクされるためにコンパイルされたソースコードが満たす必要があるプログラミング言語要件)のような文脈で話されるのが一般的である。

リンク時操作 編集

リンク時に実行される操作には、通常、外部から参照されるオブジェクトと関数のアドレスの修正、さまざまな種類のクロスモジュールチェック(外部から見える識別子の型チェック、一部の言語ではテンプレートのインスタンス化など)が含まれる。一部の最適化コンパイラは、リンク時までコード生成を遅らせて、プログラムに関する完全な情報を利用して操作を行う。プログラム内の外部変数の解決もリンク時に行われる。

リンク時最適化(link-time optimization、LTO)を有効にすると、リンク時に実施される。

リンク時の要件 編集

プログラミング言語の定義では、ソースコードを正常にコンパイルするために満たす必要のあるリンク時要件を指定できる(たとえば、重要と見なす必要がある外部から見える識別子の最大文字数)。

例外 編集

一部のプログラミング言語では[どれ?]実行時にコンパイルとリンクを実行する必要がある場合がある。

関連項目 編集

脚注 編集

  1. ^ Liberty, Jesse (2001). Sams Teach Yourself C++ in 24 Hours. Sams Publishing. p. 16. ISBN 9780672322242. https://books.google.com/books?id=hklfknZ02eMC&pg=PA16&dq=%22link+time%22+%22compiler%22#q=link-time 
  2. ^ Rudd, David (1994). Introduction to Software Design and Development with ADA. West Pub.. pp. 24–25. ISBN 9780314028297. https://books.google.com/books?id=LnTZAAAAMAAJ&dq=%22link+time%22+%22compiler%22+%22linker%22+%22introduction%22&q=link-time 
  3. ^ Stroustrup, Bjarne (2014). Programming: Principles and Practice Using C++. Addison-Wesley Professional. p. 51. ISBN 9780133796742. https://books.google.com/books?id=We21AwAAQBAJ&pg=PA134&dq=%22link+time%22+%22compiler%22+%22linker%22+%22introduction%22#q=link-time