Re: Why NOT to link using pragma comment (lib, libname)

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance




David Ching wrote:
"Ajay Kalra" <ajaykalra@xxxxxxxxx> wrote in message
news:1158107014.872169.96080@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Let me repeat it strongly: It has no purpose other than decoration in a
real software environment.

I think you are always thinking of a linking to a 3rd party library.
Thats not how most projects are done. There are 3rd party libraries,
but these are almost negligible in comparison with in house libraries.
I cant think of *any* scenario in the projects/companies I have worked
in (7-8 jobs, 20 years) that this is meaningful.

What if I am inhouse developer and project links against my library. My
library is at the bottom of the food chain but not totally at the
bottom.. It hardly changes and people use Pragmas(fictitious). Now when
I change something for the library, I am forced to "Rebuild All" as I
have no clue who my clients can be. This nightmare will take around >
28 hours of build time. Completely meaningless to me as a stable
library developer.


Why do you have to Rebuild All because you have "no idea who your clients
will be"? You do a Rebuild All because YOUR dependencies have changed.

But you dont need a Rebuild ALL. It may be only 4 out of 40 projects
need building. Why is rebuilding all necessary?

Whoever uses your deliverables does not affect when you do a Rebuild All.

Yes. But why should I have to do Rebuild all if only one of projects
requires building?

And if a Rebuild All takes 28 hours, you have bigger problems than simply

Not really. Thats part of life. 28 hours is a conservative estimate
when done using distributed builds. I spoke to MSFT about this few
years ago. VS2005 compilation was on the same lines as far as time is
concerned.

Do you use precompiled
headers?

Of course.

Have you investigated distributed build systems like Incredibuild?

Yes. I thought it was cool. Compilation time for one of the projects
went down from around 6 hours to 25 mins or so with around 10
Incredibuild clients.

There are other issues as well and some really bad mistakes on MSFT
part. With VC6 you could copy .pch/obj files across computers without a
problem. In VC2003, it was broken. IOW, you must compile all files on
the same computer for debug to work. It was a nightmare. We contacted
MSFT and they did acknowledge it. (I have since moved on from that job
after spending 7 years of gaining very valuable experience.)

---
Ajay

.



Relevant Pages

  • Re: HEADS UP: compat6x
    ... use -stable apps by doing the library bump at first breakage. ... why not just enable symbol versioning in current by default now ... change the way dependencies are recorded in shared libraries, ... only have to rebuild things once. ...
    (freebsd-current)
  • Re: HEADS UP: compat6x
    ... use -stable apps by doing the library bump at first breakage. ... why not just enable symbol versioning in current by default now ... change the way dependencies are recorded in shared libraries, ... only have to rebuild things once. ...
    (freebsd-current)
  • Re: What should I do with std.textio.all of ModelSim
    ... Maybe you have an old version of modelsim? ... Rebuilding Supplied Libraries ... to rebuild these libraries, the sources are provided in the vhdl_src ... manu: 'compile' and 'compile all'. ...
    (comp.arch.fpga)
  • Re: Why NOT to link using pragma comment (lib, libname)
    ... but these are almost negligible in comparison with in house libraries. ... I change something for the library, I am forced to "Rebuild All" as I ... And if a Rebuild All takes 28 hours, you have bigger problems than simply ... specifying dependent libraries in the wrong place. ...
    (microsoft.public.vc.mfc)
  • Re: pgm object/source comparison
    ... There may be plenty of reasons why compilation fails, ... ILE, like default activation groups, objects ... I moved the libraries, files and ... >>> seems fairly obvious that the source code in those two don't match ...
    (comp.sys.ibm.as400.misc)