/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 開発環境でこのリンカー オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関するページを参照してください。
[構成プロパティ]>[リンカー]>[全般] プロパティ ページを選択します。
[インクリメンタル リンクを有効にする] プロパティを変更します。
このリンカーをコードから設定するには
- 以下を参照してください。LinkIncremental