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

Luis Ibanez luis.ibanez at kitware.com
Tue Nov 9 15:55:45 EST 2004


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
>>>
>>
>>
> 
> 






More information about the Insight-users mailing list