/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 見つかりません。

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

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

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

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

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

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

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

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

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

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

関連項目

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