Incremental linking

Our solution contains 8 projects - one MFC exe, one DLL, and six static libraries. We are using VC++ 2003.

To do a full link on the executable is very slow - as much as 10 minutes. We believe this is the fault of some third-party libraries we are linking to, but right now we don't have an alternative to using them.

Incremental links, by contrast, take less than two minutes. This ought to largely take care of the issue, but it doesn't.

If just one file in any of the libraries changes, the exe seems to always require a full link. Static or dynamic library does not seem to make a difference. Why is this Has it been fixed in VC++ 2005



Answer this question

Incremental linking

  • BarrySumpter

    These are debug builds.  We do not use LTCG or whole program.

    In any case, my question is not with the amount of time the full link takes, but why the linker is doing a full link in the first place when only one file has changed.


  • RacingJack

    Is this in release builds or debug builds If release, are you using link time code generation and whole program optimization In my experience, that can take up to 10 times the amount of time to link than normal linking.

    Ted.


  • Grady Jr Henderson

    These are all native projects.
  • Mausi

    Are of any of the projects managed If you are using project references (between the projects) you might be causing full relink even though a single file has changed.

  • KayaksTheAtlantic

    Also if the changes are to static libraries you also get a full link.

    In VS2005, if you're using the IDE, then we will incrementally link in the face of changing static libraries.

    Thanks,

    Kang Su Gatlin

    Visual C++ Program Manager



  • Incremental linking