[Insight-users] Problem compiling ITK-1.6 ( itkvcl project) with .NET-Version 7.1

jasmuth at seas.upenn.edu jasmuth at seas.upenn.edu
Fri, 30 Apr 2004 13:54:11 -0400


ITK-1.6 now compiles for me with VS.NET 2003. (upgraded from VS.NET 2002)

I gave up trying to "fix" the compiler/registry/system/...  and 
instead "fixed" the Utilities/vxl/vcl/CMakelists.txt file.  Here is a diff:

189,190c189,191
<   emulation/vcl_hash.txx
<   emulation/vcl_hash_map.txx          emulation/vcl_hash_map.h
---
> #  emulation/vcl_hash.txx
> #  emulation/vcl_hash_map.txx  
>         emulation/vcl_hash_map.h
194,195c195,197
<   emulation/vcl_multimap.txx          emulation/vcl_multimap.h
<   emulation/vcl_rbtree.txx
---
> #  emulation/vcl_multimap.txx     
>      emulation/vcl_multimap.h
> #  emulation/vcl_rbtree.txx

The reason that vcl wouldn't compile (and thus itk wouldn't compile) was that 
these four emulation files were being installed into the project file.  Since 
I know that my compiler is "iso",  taking away the flexibility to include them 
for other platforms seemed like the easiest way for me to get past this 
problem.   

The larger question that still has no solution is why CMake wanted to install 
them in the first place.   It seems to be related to something happening in 
the configuration testing that VCL does.   I've given up on tracking 
the "real" problem down. 

If anyone is interested in actually fixing the problem,  let me know and I 
will send any files, try any commands, etc.  

Thanks for all the suggestions everyone,

Jane


Quoting jasmuth at seas.upenn.edu:

> Hi Brad,
> 
> I removed the CMAKE_MAKE_PROGRAM environment variable - no effect.
> 
> I renamed the registry key:
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0
> to 
> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\HIDE7.0
> thinking that it would make it "invisible" to applications,  but allow me to
> 
> put it back if anything bad happened.  There was no "InstallDir" entry under
> 
> it.  This change also had no effect.
> 
> I ran across an article that mentioned a possible conflict from an old 
> VCComponents.dat file in the user Application Data directory.  I moved this 
> directory out of the way for the old 7.0 version.  This had no effect.
> 
> Here is the reference to the VCComponents.dat file:
> http://msdn.microsoft.com/library/default.asp?url=/library/en-
> us/vsintro7/html/vxurfVCDirectoriesProjectsOptionsDialogBox.asp
> 
> There are other places with Visual Studio configuration information on the 
> system (e.g., C:\WINDOWS\Microsoft.NET\Framework).   So many that it seems 
> like the wrong approach to try to fix things by moving/deleting  items left 
> over from the previous 7.0 install. 
> 
> I checked into Luis' diagnosis (included below),  and indeed,  both files ARE
> 
> being included.  I will try to track down exactly where this is happening and
> 
> why and will report later on that.  
> 
> I am coming to the conclusion that the "bug" is in vcl somewhere.  It should
> 
> be possible to upgrade to the newer version of Visual Studio without vcl 
> breaking.
> 
> Thanks for the help,
> 
> Jane
> 
> 
> 
> 
> 
> 
> > >  From the errors in vcl_algorithm.txx, here is what is happening,
> > > there is a dispatcher file
> > >
> > > vcl/vcl_algorithm.txx
> > >
> > > that depending on certain flags should include one (only one)
> > > of the following files:
> > >
> > > vcl/emulation/vcl_algorithm.txx
> > > vcl/iso/vcl_algorithm.txx
> > > vcl/egcs/vcl_algorithm.txx
> > > vcl/gcc-295/vcl_algorithm.txx
> > > vcl/sunpro/vcl_algorithm.txx
> > > vcl/sgi/vcl_algorithm.txx
> > >
> > > for some reason your configuration is trying to use both:
> > >
> > > vcl/iso/vcl_algorithm.txx
> > >
> > > and
> > >
> > > vcl/emulation/vcl_algorithm.txx
> > >
> > > with the consequent conflict in repeated definitions....
> 
> 
> Quoting Brad King <brad.king at kitware.com>:
> 
> > 
> > Please remove the CMAKE_MAKE_PROGRAM environment variable from the 
> > machine.  I doubt it is causing this problem, but it should not be there 
> > anyway.
> > 
> > Is the following registry key present on the machine?
> > 
> > HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\7.0
> > 
> > Is there an "InstallDir" entry under it?  What is its value?
> > 
> > -Brad
> > 
> 
> 
> > jasmuth at seas.upenn.edu wrote:
> > > Hi Aaron,
> > > 
> > > It's interesting to know that you finally resolved your problem by
> avoiding
> > 
> > > VS.NET 2003.   I had seen your previous postings...   
> > > 
> > > I am continuing to research this and found that the error messages
> written
> > to 
> > > the CMakeOutput.log and CMakeError.log files go away when I manually set
> > the 
> > > value of CMAKE_MAKE_PROGRAM via the CMake GUI.  
> > > 
> > > The error message are gone,  but the same compile problem with itkvcl
> > remains.
> > > 
> > > Unfortunately,  all of the CMakeTMP files are deleted by CMake,  so I
> can't
> > 
> > > look there,  but here is one curious bit:
> > > 
> > > My System Environment has a variable "CMAKE_MAKE_PROGRAM"  with value set
> 
> > > to "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7
> > > \IDE\devenv.exe" - which is the same as I told to CMake.
> > > 
> > > The BuildLog.htm output generated by VS when it compiled itkvcl reports
> > that 
> > > that the environment variable "CMAKE_MAKE_PROGRAM" has value "C:\Program
> 
> > > Files\Microsoft Visual Studio .NET\Common7\IDE\devenv.exe"  -  this is
> > missing 
> > > the "2003" for my installed version of VS.   There is no devenv.exe at
> this
> > 
> > > location.  It was uninstalled months ago.
> > > 
> > > I don't know where/how these bogus locations are being set.   But I also
> 
> > > suspect CMake is getting the wrong values from somewhere.  I'm at a loss
> to
> > 
> > > figure out how to track this down.
>