Incremental linking and multiple projects

R

Rudy Ray Moore

I work with a multi-project workspace. One project (the "startup" project)
has a "Configuration Type" of "Application (.exe)". The other 40 projects
have a "Configuration Type" of "Static Library (.lib)".

My question:
Should the linker incrementally link when I make a change to one of the
..cpps in one of my .lib projects?

For VC6 the answer is yes.

For VC71/2003/.net I'm afraid the answer is no.

Incremental linking doesn't work for me when I make changes to my "Static
Library (.lib)" projects. Passing "/test" to link.exe give me the reason:
LINK : LNK6010: library changed; performing full link

The only time I get incremental linking is when I make a change in my
"Application (.exe)" project.

Hoping the answer to "My Question" is yes,

Rudy
 
R

Ronald Laeremans [MSFT]

Hi Rudy,

This is by design. We can't incrementally link when a static lib changes.
That was never supported before either.

Ronald Laeremans
Visual C++ team
 
R

Rudy Ray Moore

Ronald,

Are you saying that I was always performing a "full link" with this same
setup in VS6? In that case, it takes six times as long to perform a full
link in VS7.1/.net/2003 than in VS6!

BTW, here's a product that enables "incremental linking" for
VS7.1/2003/.net. It works, even with changes to static libraries!

===

http://www.workspacewhiz.com/FastSolutionBuild/FastSolutionBuildReadme.html
New in Version 2.20 is support for incremental linking a multi-project
solution. Visual C++ does not seem to support incremental linking when a
file in a library project has changed. In fact, when examining the output
after turning on the verbose linker output, it appears to be nearly
identical to a full link. Fast Solution Build enables incremental linking
support for all projects in the solution. It is amazing how quickly links
perform when they are incremental.

===

Thanks for your help,

Rudy
 
C

Carl Daniel [VC++ MVP]

Rudy said:
Ronald,

Are you saying that I was always performing a "full link" with this
same setup in VS6? In that case, it takes six times as long to
perform a full link in VS7.1/.net/2003 than in VS6!

BTW, here's a product that enables "incremental linking" for
VS7.1/2003/.net. It works, even with changes to static libraries!

It works by mostly ignoring your libraries and simply feeding all of the
..obj's directly to the linker. That's not doing exactly the same thing -
and is only an option for libraries that are built by projects in the same
solution. Still, it's cool that it works.

-cd
 
H

Hendrik Schober

Carl Daniel said:
[...] Still, it's cool that it works.

I installed this plugin a while ago and
the main thing thing it does for me is
doing the dependency check within a
fraction of the time VS needs for this.
I wouldn't exactly call that cool. I'd
say it's sad that VS doesn't get this
right for several versions. Dependency
checks have been a nuisance since I use
VS (which I started with VC6).


Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"Sometimes compilers are so much more reasonable than people."
Scott Meyers
 
R

Rudy Ray Moore

I didn't have dependency checking problems with Visual C++ with VC++ 6. I
do have problems with VC++ 2003/.net/7.1.

I wonder if there is something "special" about your VC++6 workspace that
prevented dependency checking from working for you.

Rudy


Hendrik Schober said:
[...] Still, it's cool that it works.

I installed this plugin a while ago and
the main thing thing it does for me is
doing the dependency check within a
fraction of the time VS needs for this.
I wouldn't exactly call that cool. I'd
say it's sad that VS doesn't get this
right for several versions. Dependency
checks have been a nuisance since I use
VS (which I started with VC6).


Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"Sometimes compilers are so much more reasonable than people."
Scott Meyers
 
H

Hendrik Schober

Rudy Ray Moore said:
I didn't have dependency checking problems with Visual C++ with VC++ 6. I
do have problems with VC++ 2003/.net/7.1.

I wonder if there is something "special" about your VC++6 workspace that
prevented dependency checking from working for you.

What was "special" about it was, that
it had _a_lot_ of projects in it. And
it wasn't that it didn't work. But I
have seen VS6 beeing off to check
dependencies for 4mins. I have been
told by rather reliable people that
they have seen this 10mins.
If you have such projects, you have two
choices: Do it by hand, or use command
line tools. The IDE is useless.
Rudy
[...]

Schobi

--
(e-mail address removed) is never read
I'm Schobi at suespammers dot org

"Sometimes compilers are so much more reasonable than people."
Scott Meyers
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top