/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