Exe makes full reference when changing the library, despite the additional binding

I have an MSVC ++ project consisting of an executable file, several native static libraries and some pre-compiled static third-party libraries. Exe uses incremental binding to speed up build time.

When I modify a .cpp file in an executable project, compilation + binding is very fast (<10s).
However, when I modify the .cpp file in one of my own libraries, the executable project seems to make a full reference to every library it uses.
I am no longer sure if this is a full link, but from Linker Warnings's "vc90.pdb not found" link I can say that it is linked to some external libraries that haven't changed at all.

Here is an example project structure:

  • Precompiled third-party libraries ExtLib1, ExtLib2andExtLib3
  • Native library MyLibusing third-party libExtLib1
  • Own exe MyExeusing MyLibandExtLib1-3

Changing file .cpp to MyLiblead to binding MyExeto the MyLib, ExtLib1, ExtLib2, and ExtLib3, even if included incremental binding.

A full link takes about 5 minutes in my project, so I ask: Is there a way to reassign only the modified library?

+5
source share
2 answers

This is an introduction to incremental binding . It lists situations that will trigger a full link. One of them is: β€œThe object that was compiled with the / Yu / Z 7 option changed.”, Check to see if your MyLib caught it.

+2
source

, , , Visual Studio 2013, , , - :

2>Link:
2>  LINK : library changed; performing full link

: Visual Studio 2015, , , , .

: , . , : http://www.pcreview.co.uk/threads/incremental-linking-and-multiple-projects.1431266/, :

. . .

Ronald Laeremans, Visual ++

- , VS 2015 : http://blogs.msdn.com/b/vcblog/archive/2014/11/12/speeding-up-the-incremental-developer-scenario-with-visual-studio-2015.aspx.

+1

All Articles