[Insight-users] link error in itkApplication(part 3)

Jie Zhu zhujie1979 at gmail.com
Tue Nov 9 23:18:41 EST 2004


Hi Luis,
Yes, A) was the case. I cleared the cache and now it compiles without
problem. Thank you.

Jie



On Tue, 09 Nov 2004 15:55:45 -0500, Luis Ibanez <luis.ibanez at kitware.com> wrote:
> 
> Hi Jie,
> 
> From the link error messages that you posted, it seems that
> you have a mix of VTK headers from version 4.2, when vtkVolume
> had a SetMapper() method with argument
> 
>                 class vtkVolumeMapper *
> 
> and you are trying to link with VTK libraries from version 4.4
> where vtkVolume has a SetMapper() method expecting as argument
> 
>              class vtkAbstractVolumeMapper *
> 
> This may be occurring as a result of one of the two following
> situations:
> 
> A) You had build InsightApplications in the past using VTK 4.2,
>    then you switched to VTK 4.4, and forgot to do "clean" from
>    VisualStudio.  Therefore, some of the .o modules have already
>    been compiled with the old (VTK 4.2) signatures of functions.
> 
>                            OR
> 
> B) You have still traces of VTK 4.2 in your systems, and at build
>    time the headers of VTK 4.2 are being used when compiling
>    InsightApplications while the libraries are being taken from
>    VTK 4.4.   This is specially likely if you have dared to change
>    settings in your Visual Studio workspace *after* you generated
>    it with CMake.
> 
> You can discard option (B) very easily by just visiting the
> include directories in the project that is failing compilation
> and checking that only VTK 4.4 directories are included.
> 
> Then, if you suspect that you are in situation (A) the solution
> is simply to do a "Clean" in the entire InsightApplications, and
> rebuilding from scratch.
> 
> 
> 
> 
>    Regards,
> 
>      Luis
> 
> -----------------
> Jie Zhu wrote:
> 
> > Hi Julien,
> > Yes, I did rerun Cmake on InsightApplications, I set VTK_DIR as the
> > folder where Vtk4.4 is, and I made sure that InsightApplications are
> > version 1.8.1(same version as the other parts of the ITK I am runing)
> > as well. I also checked, and when I built Vtk, I did turn off
> > BUILD_SHARED_LIBS.
> > Do you think there might be something wrong with the way I build FLTK?
> > Or is it something else? Any suggestions?
> > Thanks in advance,
> > Jie
> >
> >
> > On Mon, 8 Nov 2004 23:36:29 -0500, Julien Jomier <jjomier at cs.unc.edu> wrote:
> >
> >>Hi Jie,
> >>
> >>Did you rerun CMake on InsightApplications before recompiling it? (if not,
> >>you should...)
> >>Also, you can try to build VTK as static libraries (BUILD_SHARED_LIBS OFF)
> >>that might fix your linking problems.
> >>
> >>Let us know if that was the problem,
> >>
> >>Julien
> >>
> >>
> >>
> >>----- Original Message -----
> >>From: "Jie Zhu" <zhujie1979 at gmail.com>
> >>To: <insight-users at itk.org>
> >>Sent: Monday, November 08, 2004 10:35 PM
> >>Subject: [Insight-users] link error in itkApplication(part 3)
> >>
> >>
> >>>I tried deleting vtk4.2 and rebuilding with vtk4.4. I still have about
> >>>9 linking errors though:
> >>>
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkVolume::SetMapper(class vtkVolumeMapper *)"
> >>>(__imp_?SetMapper at vtkVolume@@QAEXPAVvtkVolumeMapper@@@Z) referenced in
> >>>function "protected: __thiscall fltk::VTKImageViewer<unsigned
> >>>char>::VTKImageViewer<unsigned char>(void)"
> >>>(??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: static class
> >>>vtkVolumeRayCastCompositeFunction * __cdecl
> >>>vtkVolumeRayCastCompositeFunction::New(void)"
> >>>(__imp_?New at vtkVolumeRayCastCompositeFunction@@SAPAV1 at XZ) referenced
> >>>in function "protected: __thiscall fltk::VTKImageViewer<unsigned
> >>>char>::VTKImageViewer<unsigned char>(void)"
> >>>(??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkVolumeProperty::ShadeOn(void)"
> >>>(__imp_?ShadeOn at vtkVolumeProperty@@QAEXXZ) referenced in function
> >>>"protected: __thiscall fltk::VTKImageViewer<unsigned
> >>>char>::VTKImageViewer<unsigned char>(void)"
> >>>(??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkVolumeProperty::SetInterpolationTypeToLinear(void)"
> >>>(__imp_?SetInterpolationTypeToLinear at vtkVolumeProperty@@QAEXXZ)
> >>>referenced in function "protected: __thiscall
> >>>fltk::VTKImageViewer<unsigned char>::VTKImageViewer<unsigned
> >>>char>(void)" (??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkVolumeProperty::SetScalarOpacity(class vtkPiecewiseFunction *)"
> >>>
> >>
> >>(__imp_?SetScalarOpacity at vtkVolumeProperty@@QAEXPAVvtkPiecewiseFunction@@@Z)
> >>
> >>>referenced in function "protected: __thiscall
> >>>fltk::VTKImageViewer<unsigned char>::VTKImageViewer<unsigned
> >>>char>(void)" (??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkVolumeProperty::SetColor(class vtkPiecewiseFunction *)"
> >>>(__imp_?SetColor at vtkVolumeProperty@@QAEXPAVvtkPiecewiseFunction@@@Z)
> >>>referenced in function "protected: __thiscall
> >>>fltk::VTKImageViewer<unsigned char>::VTKImageViewer<unsigned
> >>>char>(void)" (??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkPiecewiseFunction::AddSegment(float,float,float,float)"
> >>>(__imp_?AddSegment at vtkPiecewiseFunction@@QAEXMMMM at Z) referenced in
> >>>function "protected: __thiscall fltk::VTKImageViewer<unsigned
> >>>char>::VTKImageViewer<unsigned char>(void)"
> >>>(??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: void __thiscall
> >>>vtkImageImport::SetDataScalarTypeToUnsignedChar(void)"
> >>>(__imp_?SetDataScalarTypeToUnsignedChar at vtkImageImport@@QAEXXZ)
> >>>referenced in function "protected: __thiscall
> >>>fltk::VTKImageViewer<unsigned char>::VTKImageViewer<unsigned
> >>>char>(void)" (??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>GeodesicActiveContour.obj : error LNK2019: unresolved external symbol
> >>>"__declspec(dllimport) public: static class vtkImageImport * __cdecl
> >>>vtkImageImport::New(void)" (__imp_?New at vtkImageImport@@SAPAV1 at XZ)
> >>>referenced in function "protected: __thiscall
> >>>itk::ImageToVTKImageFilter<class itk::Image<unsigned char,3>
> >>>
> >>>>::ImageToVTKImageFilter<class itk::Image<unsigned char,3> >(void)"
> >>>
> >>>(??0?$ImageToVTKImageFilter at V?$Image at E$02 at itk@@@itk@@IAE at XZ)
> >>>
> >>>Why is this happening? What can I do about this?
> >>>Thank you,
> >>>Jie
> >>>
> >>>
> >>>
> >>>
> >>>On Sun, 7 Nov 2004 12:46:33 -0800 (PST), Jim Lii <jimlii at yahoo.com> wrote:
> >>>
> >>>>The only problem I had with VTK 4.2 (VTK_USE_HYBRID ON) and
> >>>>InsightApplications 1.8 was: can't open include file:
> >>>>vtkImageMarchingCubes.h & vtkDecimate.h in compiling
> >>>>DeformableModelApplication.cxx. After some searching I noticed the
> >>
> >>following
> >>
> >>>>conditional include in file
> >>
> >>applications/SNAP/Logic/Mesh/VTKMeshPipeline.h.
> >>
> >>>>Seems the DeformableModelApplication assumes (requires) the
> >>
> >>USE_VTK_PATENTED
> >>
> >>>>be ON. (always inculde these two .h files) So I re-run cMake*** with
> >>>>USE_VTK_PATENDED ON and rebuild VTK. Now InsightApplications 1.8 build
> >>
> >>ok
> >>
> >>>>with USE_FLTK and USE_VTK set to ON.
> >>>>
> >>>>***(If I just make there two .h files visible to the compiler, I got
> >>
> >>other
> >>
> >>>>errors).
> >>>>
> >>>>I am a newbie with XP, cMake 2.0.5, .net 2003, fltk 1.1.5, vtk 4.2 and
> >>>>insight 1.8.1 and insightapplication 1.8.0. Questions are
> >>>>
> >>>>1. Is it really necessary to rebuild with vtk 4.4 and,
> >>>>2. Where can I find all the meaning of the setting for cMake, what
> >>
> >>impact
> >>
> >>>>they might have and dose it matter if all build ok?
> >>>>
> >>>>// Optional selection of patented or non-patented algorithms
> >>>>
> >>>>#ifdef USE_VTK_PATENTED
> >>>>  #include <vtkImageMarchingCubes.h>
> >>>>  #include <vtkDecimate.h>
> >>>>#else
> >>>>  #include <vtkContourFilter.h>
> >>>>  #include <vtkPolyDataNormals.h>
> >>>>  #include <vtkDecimatePro.h>
> >>>>#endif file only will be inculded if VTK
> >>>>
> >>>>Thanks,
> >>>>
> >>>>Jim
> >>>>
> >>>>
> >>>>
> >>>>Luis Ibanez <luis.ibanez at kitware.com> wrote:
> >>>>
> >>>>Hi Jim,
> >>>>
> >>>>Thanks for pointing this out.
> >>>>
> >>>>It seems that we missed to update the README.txt file
> >>>>for the ITK release 1.8.
> >>>>
> >>>>We just committed a fix for this file. It now says:
> >>>>
> >>>>
> >>>>>* VTK requires VTK version 4.4 and must be built ANSI_STDLIB
> >>>>>(the ANSI_STDLIB flag is only a concern with VisualStudio 6.0).
> >>>>>
> >>>>>* CMake version 2.0.3 or later should be used.
> >>>>>
> >>>>>* FLTK version 1.1.4 is required
> >>>>>
> >>>>>* Qt version 2.3 is required (if you select to build Qt examples)
> >>>>>
> >>>>
> >>>>Please let us know if you encounter any other problem.
> >>>>
> >>>>
> >>>>Thanks
> >>>>
> >>>>
> >>>>Luis
> >>>>
> >>>>
> >>>>----------------------
> >>>>Jim Lii wrote:
> >>>>
> >>>>
> >>>>>Really?! The InsightApplications 1.8 README.txt indicates VTK 4.2.
> >>>>>
> >>>>>InsightApplications README
> >>>>>--------------------------
> >>>>>This directory contains a variety of applications written with ITK.
> >>>>>Many are
> >>>>>quite simple, come are complex and include GUI. Insight/Applications
> >>
> >>was
> >>
> >>>>>originally a directory within the Insight source code repository.
> >>
> >>However,
> >>
> >>>>>because of the size and complexity of this directory, the applications
> >>
> >>are
> >>
> >>>>>now a separate software module (e.g., CVS checkout). Please make sure
> >>
> >>that
> >>
> >>>>>you successfully build the core ITK prior to building this directory.
> >>>>>Many of
> >>>>>these applications are tricky to build and depend on external
> >>
> >>packages.
> >>
> >>>>>Some important configuration details:
> >>>>>* VTK requires VTK version 4.2 and must be built ANSI_STDLIB
> >>>>>(the ANSI_STDLIB flag is only a concern with VisualStudio 6.0).
> >>>>>* CMake version 1.8.3 or later should be used.
> >>>>>* FLTK version 1.1.4 is required
> >>>>>* Qt version 2.3 is required
> >>>>>Building with any other configurations is liable to give problems.
> >>>>>Unfortunately, developers are unlikely to help with problems due to
> >>>>>using other configurations.
> >>>>>
> >>>>>
> >>>>>
> >>>>>*/Luis Ibanez /* wrote:
> >>>>>
> >>>>>
> >>>>>Hi Jie,
> >>>>>
> >>>>>InsightApplications 1.8 must be built against VTK 4.4.
> >>>>>
> >>>>>
> >>>>>Regards,
> >>>>>
> >>>>>
> >>>>>Luis
> >>>>>
> >>>>>
> >>>>>----------------
> >>>>>Jie Zhu wrote:
> >>>>>
> >>>>>
> >>>>>>Hi All,
> >>>>>>I am already using ITK and Vtk and I am now trying to use the
> >>>>>>itkApplication geodesicActiveContour. The compiling works fine, but
> >>>>>>during linking, about 200s of the following error occurs.
> >>>>>>Why is this happening? I am using VTK4.2 and insight1.8.1.
> >>>>>>I double checked and there is only this one version of Vtk
> >>>>>
> >>>>>installed.
> >>>>>
> >>>>>>Thanks,
> >>>>>>Jie
> >>>>>>
> >>>>>>
> >>>>>>GeodesicActiveContour.obj : error LNK2019: unresolved external
> >>>>>
> >>>>>symbol
> >>>>>
> >>>>>>"__declspec(dllimport) public: void __thiscall
> >>>>>>vtkViewport::AddProp(class vtkProp *)"
> >>>>>>(__imp_?AddProp at vtkViewport@@QAEXPAVvtkProp@@@Z) referenced in
> >>>>>>function "protected: __thiscall
> >>>>>>fltk::VTKImageViewer::VTKImageViewer(void)"
> >>>>>>(??0?$VTKImageViewer at E@fltk@@IAE at XZ)
> >>>>>>
> >>>>>>
> >>>>>>ITKVtkFltk.lib(fltkVTKImageViewerGUI.obj) : error LNK2001:
> >>>>>
> >>>>>unresolved
> >>>>>
> >>>>>>external symbol "__declspec(dllimport) public: static void __cdecl
> >>>>>>vtkObject::operator delete(void *)" (__imp_??3vtkObject@@SAXPAX at Z)
> >>>>>>_______________________________________________
> >>>>>>Insight-users mailing list
> >>>>>>Insight-users at itk.org
> >>>>>>http://www.itk.org/mailman/listinfo/insight-users
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>_______________________________________________
> >>>>>Insight-users mailing list
> >>>>>Insight-users at itk.org
> >>>>>http://www.itk.org/mailman/listinfo/insight-users
> >>>>>
> >>>>
> >>>------------------------------------------------------------------------
> >>>
> >>>>>Do you Yahoo!?
> >>>>>Check out the new Yahoo! Front Page. www.yahoo.com
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>__________________________________________________
> >>>>Do You Yahoo!?
> >>>>Tired of spam? Yahoo! Mail has the best spam protection around
> >>>>http://mail.yahoo.com
> >>>>_______________________________________________
> >>>>Insight-users mailing list
> >>>>Insight-users at itk.org
> >>>>http://www.itk.org/mailman/listinfo/insight-users
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>--
> >>>Jie Zhu
> >>>Cornell University
> >>>
> >>>
> >>>--
> >>>Jie Zhu
> >>>Cornell University
> >>>_______________________________________________
> >>
> >>
> >>>Insight-users mailing list
> >>>Insight-users at itk.org
> >>>http://www.itk.org/mailman/listinfo/insight-users
> >>>
> >>
> >>
> >
> >
> 
> 


-- 
Jie Zhu
Cornell University


More information about the Insight-users mailing list