[vtk-developers] VTK CVS broken: vtkInformationExecutivePortVectorKey and vtkExecutive link error in Debug only

David C Thompson dcthomp at sandia.gov
Thu Oct 18 14:38:59 EDT 2007


> We are unable to build VTK from CVS.  It Release it links, in Debug it
> does not.  The error is:
> 
> Linking CXX executable ../../../bin/CommonCxxTests
> Undefined symbols:
>   "typeinfo for vtkExecutive", referenced from:
>       typeinfo for vtkExecutive*in libvtkCommon.a(vtkInformationExecutivePortVectorKey.o)
> ld: symbol(s) not found
> 
> We see that vtkInformationExecutivePortVectorKey was recently moved from
> Filtering to Common, but vtkExecutive is still in Filtering.  Should it
> move too?
I will be happy to move vtkExecutive to Common if Kitware approves, but
I doubt they will because it would involve moving the following classes
as well (since vtkExecutive.cxx includes them):
   vtkAlgorithm
   vtkAlgorithmOutput
   vtkDataObject
And then all of *their* dependencies would have to be moved. I think an
aesthetically more pleasing solution would be to eliminate
vtkInformation's dependency on vtkExecutive but I don't see a simple way
to do this. Do any of you?

> Oddly, I do not see this problem on any dashboard.  But we have reproed
> this on two machine, with fresh checkouts and fresh builds.
I certainly never saw it before I committed the move but perhaps I
didn't build static libraries? Could all of this be caused by
vtkSetObjectMacro() calling GetClassName() inside a vtkDebugMacro()?
With VTK_DEBUG_LEAKS turned on, does the vtkExecutive::Register() call
(also in vtkSetObjectMacro) also ask for the class name of the
vtkExecutive object? If so, it might be more difficult.

	David




More information about the vtk-developers mailing list