[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GDCM package: Undefined symbols / VTK misconfiguration



On Mon, May 18, 2009 at 9:46 AM, Mathieu Malaterre
<mathieu.malaterre@gmail.com> wrote:
> GDCM has been uploaded to debian, and there is already a bug report (*):
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=529193
>
> Linking CXX executable ../../../bin/gdcm2vtk
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkStringArray::GetValue(long long)'
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkDataArrayTemplate<long long>::InsertValue(long long, long long)'
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkDataArrayTemplate<unsigned short>::WritePointer(long long, long
> long)'
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkDataArrayTemplate<unsigned char>::WritePointer(long long, long
> long)'
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkDataArrayTemplate<long long>::WritePointer(long long, long long)'
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkDataArray::InsertTuple3(long long, double, double, double)'
> ../../../bin/libvtkgdcm.so.2.0.10: undefined reference to
> `vtkLookupTable::SetNumberOfTableValues(long long)'
> collect2: ld returned 1 exit status
> make[3]: *** [bin/gdcm2vtk] Error 1
>
> The missing symbols are all related to API using vtkIdType which is a
> configurable type which can be 32bits or 64bits. So I am assuming that
> on i386 system the VTK libraries are providing a
> vtkStringArray::GetValue(long) symbol.
>
> Just in case someone would be on a i386 system could they send me the output of:
>
> $ nm -D ./bin/libvtkCommon.so | c++filt | grep vtkStringArray::GetValue

To keep things organized I am following the thread here on debian-med
(maybe there is a better place for issue with VTK package).

Anyway, there something wrong with the package on i386 for VTK. If I
download the binary package :

wget http://ftp.fr.debian.org/debian/pool/main/v/vtk/libvtk5_5.2.1-3_i386.deb
wget http://ftp.fr.debian.org/debian/pool/main/v/vtk/libvtk5-dev_5.2.1-3_all.deb


I get on the one hand:

$ grep USE_64 ./usr/include/vtk-5.2/vtkConfigure.h
#define VTK_USE_64BIT_IDS
$ grep USE_64 usr/lib/vtk-5.2/VTKConfig.cmake
SET(VTK_USE_64BIT_IDS "ON")

Ok so far so good, VTK was configured with 64 bits ON (thus vtkIdType
will be 'long long').

BUT on the other hand:


$ nm -D ./usr/lib/libvtkCommon.so.5.2.1 | c++filt | grep StringArray::GetVa
001ad8c0 T vtkStringArray::GetValue(int)


I have never seen that before, I do not even understand how this is
possible. Are the header files generated on a machine different than
the binaries files ?

Thanks,
-- 
Mathieu


Reply to: