I have an MSVC++ project consisting of an executable, several own static libraries and some precompiled static third party libraries. The exe uses incremental linking in order to speed up build time.
When I change a .cpp file within the executable project, compiling + linking is very quick (<10s).
However, when I change a .cpp file within one of my own libraries, the executable project appears to be doing a full link against every library it uses.
I'm not so sure anymore if it is a full link in fact, but from the "vc90.pdb not found" Linker Warnings, I can tell that it links against some external libraries which have not changed at all.
Here's an example of the project structure:
- Precompiled third party libraries
ExtLib1
,ExtLib2
andExtLib3
- Own Library
MyLib
, using third party libExtLib1
- Own Exe
MyExe
, usingMyLib
andExtLib1-3
Changing a .cpp file in MyLib
would then lead to MyExe
being linked to MyLib
, ExtLib1
, ExtLib2
and ExtLib3
, even if Incremental Linking is turned on.
A full link takes around 5 minutes in my project, so I'm asking: Is there any way to re-link only the changed library?