Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Added

Section


Column

Note:

  • This feature is relevant only for VS 2008 and earlier.

This section describes how to speed up incremental links in Visual Studio .NET, 2005, and 2008 using the IncrediLink option.


Overview

The IncrediLink option can speed up incremental links from several minutes to as little as a few seconds. It does this by combining Visual Studio's incremental linking option and modifying the link.exe command line, so that references to LIB files are replaced by references to the OBJ files, which make up that LIB file (wherever possible). The latter modification is required in order for the incremental linking feature to be effective in solutions consisting of LIB projects, which are linked into the main project(s).


To turn on IncrediLink, select the "By default, enable IncrediLink" option in the Agent Settings under Visual Studio Builds on the linker page.

Two modes are available when this option is active:

  • According to "Enable Incremental Linking" project setting – In this mode, IncrediLink is activated only for projects that have "Incremental Linking" turned on. Note that since Incremental Linking is enabled by default, this includes all projects that don't have Incremental Linking specifically disabled.
  • For all projects – In this mode, IncrediLink is activated for all projects.


  • The Do not create libraries checkbox controls whether IncrediBuild skips the link step of LIB projects whose OBJ files IncrediLink embeds into their parent project's link command line. As these LIB projects' OBJ files are linked into the main executable/DLL, it is often possible to save additional build time by avoiding these LIB projects' link step.

For Visual Studio 2005/2008 builds, a choice is given between the standard mode of operation ("According to IncrediBuild default setting") or the "According to 'use Library Dependency Inputs' project option" setting, which will cause IncrediLink to be activated only for projects which have this setting activated in the project's properties (the 'Use library Dependency Inputs' property is Visual Studio 2005/2008's equivalent setting to IncrediLink).

Note:

  • IncrediLink only affects linkage of DLL and EXE projects.

Considerations

There are a few things to consider with this feature turned on:


  • Duplicate Symbol link error messages may show up if different library projects define the same symbol twice. This is because the linker is more tolerant to duplicate symbols residing in libraries than it is to duplicate symbols defined in different object files. If this happens, change your code to include each symbol definition once.
  • Missing Function body link errors may show up. To work around this, add function body stubs to your code.
  • Symbols that are not referenced anywhere in the code are still included in the final output (with regular links, they are ignored).



Column

Visual Studio Reference:

Child pages (Children Display)
styleh4
pageVisual Studio Reference

IncrediBuild Solutions:

Child pages (Children Display)
styleh4
pageIncrediBuild Solutions

User Manual:

Child pages (Children Display)
styleh4
pageIncrediBuild Windows User Manual


...