Beim Verknüpfen werden alle OBJ-Dateien, die aus Ihren Quelldateien erstellt wurden, sowie alle LIB-Dateien, auf die Sie verweisen, in Ihre Ausgabe (z. B. EXE oder DLL) gepackt.
Ohne inkrementelle Verknüpfung muss jedes Mal von Grund auf neu erstellt werden.
Incremental Linking verbindet Ihre exe/dll auf eine Weise, die es für den Linker einfacher macht, die existierende exe/dll zu aktualisieren, wenn Sie eine kleine Änderung vornehmen und neu kompilieren.
So, inkrementelle Verknüpfung macht es nur schneller zu kompilieren und verknüpfen Sie Ihr Projekt.
Der einzige Laufzeiteffekt es haben könnte, ist, dass es Ihre exe/dll machen kann etwas größer und langsamer, wie hier decribed:
http://msdn.microsoft.com/en-us/library/4khtbfyf.aspx
Edit: Wie Logan erwähnt, inkrementelle Verknüpfung ist auch unvereinbar mit link time code generation - daher eine mögliche Leistungsoptimierung zu verlieren.
Sie können die inkrementelle Verlinkung für Debug-Builds verwenden, um die Entwicklung zu beschleunigen, sie jedoch für Release-Builds deaktivieren, um die Laufzeitleistung zu verbessern.
Verzögerung geladen DLLs kann sein, was Sie denken an:
http://msdn.microsoft.com/en-us/library/151kt790.aspx
Ah, ich dachte, Linker hätten das immer getan! Also wird das "incremental linking" abschalten, damit der Linker jedes Mal alles von Grund auf neu verknüpft? – Russel
"In der Praxis ist die Wirkung davon wahrscheinlich nicht besorgniserregend." Es ist wahrscheinlich erwähnenswert, dass, während der Unterschied zwischen "normalem" Linking und inkrementellem Linking zur Laufzeit nicht so leistungsfähig ist, das inkrementelle Linking nicht mit der Link-Timecode-Generierung kompatibel ist, was zu einem drastischen Leistungsunterschied führen kann. –
@Russel: Ja wird es. @Logan: Danke, ich habe meine Antwort aktualisiert. –