[Cmake] RE: [Insight-developers] (ITK) Build Errors terminus.kitware -- W inXP-VC60, library rebuil ds

Miller, James V (Research) millerjv at crd.ge.com
Mon Mar 17 16:02:21 EST 2003


Well here a test that I ran the other day.  It happens to mimic the problem
that Matt was having.  In ITK, there is a library under Utilities called
DICOMParser.  In Code/IO is there is a class that uses this library called
itkDICOMImageIO2. If I make a change to Utilities/DICOMParser/DICOMFile.cxx
and tell DevStudio to rebuild the IO library, it does not recompile
DICOMFile.cxx.  It instead thinks that Utilities/DICOMParser is up to date
and links the IO library using the old DICOMParser lib.
 
Matt added the DICOMParser library to the IO project using "Add Files To
Project..." and then a change to DICOMFile.cxx does cause the IO library to
build.
 
Otherwise, I would fathom that you are correct in that the incremental
linker is trying to incrementally link an old executable with a new library
and complaining.
 
Sorry for the specific example. But I am in the rush to talk to someone.....
 
Jim
 

-----Original Message-----
From: Ken Martin [mailto:ken.martin at kitware.com]
Sent: Monday, March 17, 2003 3:11 PM
To: 'Miller, James V (Research)'; 'Insight-developers (E-mail)'; 'CMake
developers (E-mail)'
Subject: RE: [Insight-developers] (ITK) Build Errors terminus.kitware --
WinXP-VC60, library rebuil ds



I just checked and as far as I can see CMake is setting up the target
dependencies (and chaining them) correctly for both VS6 and VC7. (it is easy
to verify from VS just look at the project dependencies). Having seen this
type of problem before on occasion, my suspicion is that this is a bug in
the VS incremental linker or VS dependency checks.  Unfortunately the
offending dashboard was cleaned so there is little remaining evidence.
Looking at the dashboard it seems clear that ITKCommon was rebuilt (the
symbols are missing as they should be) the problem seems to be that some
examples still think that the symbols should be there. So either the
executable is screwed up (VS is trying to relink the executable) or the
specific test .obj file (Smooth something or another in this case) has not
been rebuilt, but that is a VS dependency issue. It would have been nice if
we could have checked if the Smooth...obj was up to date or not.

 

Ken

 

 

-----Original Message-----
From: insight-developers-admin at public.kitware.com
[mailto:insight-developers-admin at public.kitware.com] On Behalf Of Miller,
James V (Research)
Sent: Monday, March 17, 2003 2:18 PM
To: Insight-developers (E-mail); CMake developers (E-mail)
Subject: [Insight-developers] (ITK) Build Errors terminus.kitware --
WinXP-VC60, library rebuil ds

 

The build errors on terminus.kitware are referencing methods that I removed
from the system on Friday.  These symbols were never used, so I deleted them
to simplify the code.

 

Since we have these build errors, it looks VC6 did not rebuild all the
libraries or an old object file is lying around.

 

The reason I bring this up on the list(s) is that we have had a lot of
problems recently with VC6 building applications (examples) where the
dependent libraries are not being rebuilt.  Here is an example:  change some
code in library A.  Library B links with library A.  Executable C links with
library B.  If you just tell VC6 to build executable C, then library A does
not get rebuilt.  If you build from the top using the ALL_BUILD target, then
everything works fine. I think Matt discovered if he added the other
libraries to the particular projects (using "Add files to project"), then
the rebuilds are triggered properly.  However, this information is lost the
next time CMake is run.

Have other people seen this? Can CMake add the link libraries that an
executable uses that are also built by the workspace to the dependent
projects? Or is this necessary?

I think I have seen this same behavior on VC7.

Jim Miller 
_____________________________________
Visualization & Computer Vision
GE Research
Bldg. KW, Room C218B
P.O. Box 8, Schenectady NY 12301

millerjv at research.ge.com <mailto:millerjv at research.ge.com> 

james.miller at research.ge.com
(518) 387-4005, Dial Comm: 8*833-4005, 
Cell: (518) 505-7065, Fax: (518) 387-6981 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20030317/f1af8c9d/attachment.html>


More information about the CMake mailing list