/INCREMENTAL (増分リンク)

増分リンクするか、または常にフル リンクを実行するかを指定します。

構文

/INCREMENTAL[:NO]

解説

リンカー オプションは /INCREMENTAL 、リンカーがインクリメンタル リンクを処理する方法を制御します。

既定では、インクリメンタル リンクは実行されます。 既定の増分リンクをオーバーライドするには、次のように指定します /INCREMENTAL:NO

インクリメンタル リンクされたプログラムは、インクリメンタル リンクではないプログラムと機能的には同等です。 ただし、後続の増分リンク用に準備されているため、増分リンクされた実行可能ファイル、スタティック ライブラリ、またはダイナミック リンク ライブラリ ファイルは次のようになります。

  • コードとデータのパディングにより、インクリメンタル リンクされていないプログラムより大きくなります。 パディングを行うと、リンカーは、ファイルを再作成することなく、関数やデータのサイズを拡張できます。

  • ジャンプ サンクを使って、新しいアドレスに関数を再配置する場合があります。

    Note

    最終リリース ビルドにパディングやサンクが含まれないようにするには、プログラムをインクリメンタルにしないでリンクします。

既定値に関係なく増分リンクするには、次のように指定します /INCREMENTAL。 このオプションを選択すると、リンカーは増分リンクできない場合に警告を発行し、プログラムを非増分リンクします。 特定のオプションと状況がオーバーライドされます /INCREMENTAL

大半のプログラムでは、インクリメンタル リンクができます。 ただし、変更箇所が大きすぎたり、インクリメンタル リンクと矛盾するオプションが指定されていると、実行できません。 フル リンクを実行するには、次のいずれかを行います。

  • [増分リンク] が選択されていない (/INCREMENTAL:NO)

  • /OPT:REF が選択されている

  • /OPT:ICF が選択されている

  • /OPT:LBR が選択されている

  • /ORDER が選択されている

/INCREMENTAL は、指定された場合 /DEBUG に暗黙的に指定されます。

以下の場合もフル リンクが行われます。

  • 増分状態 (.ilk) ファイルがありません。 (LINK は、後続の増分リンクの準備として新しい .ilk ファイルを作成します)。

  • ファイルに対する .ilk 書き込みアクセス許可がありません。 (LINK ではファイルが .ilk 無視され、リンクは増分的に無視されます)。

  • .exeまたは.dll出力ファイルがありません。

  • 、、または.dll変更されたタイムスタンプ。.ilk.exe

  • LINK オプションを変更した場合。 ビルド間で LINK オプションを変更すると、ほとんどの場合、フル リンクが行われます。

  • オブジェクト (.obj) ファイルが追加または省略されます。

増分リンクは、増分リンク データベース .ilk ファイルを作成または更新します。 (増分データベース ファイルの名前) リンカー オプションを使用して、このファイルの名前と場所を/ILK指定できます。 ファイルの詳細.ilkについては、リンカー入力としてのファイルを参照してください.ilk

Visual Studio 開発環境でこのリンカー オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  2. [構成プロパティ]>[リンカー]>[全般] プロパティ ページを選択します。

  3. [インクリメンタル リンクを有効にする] プロパティを変更します。

このリンカーをコードから設定するには

  1. 以下を参照してください。LinkIncremental

関連項目

MSVC リンカーのリファレンス
MSVC リンカー オプション
.ilk リンカー入力としてのファイル