[Insight-users] ITK in Paraview Plugin

Christian Werner christian.werner at rwth-aachen.de
Thu Feb 25 04:57:12 EST 2010


Luis, you led me to the right direction. Good news, everything works 
fine! By chance I found some cmake related postings where there was some 
problem with the LINK_LIBRARIES variable. I was like "Gee, this variable 
looks nice! It could replace my TARGET_LINK_LIBRARIES which does not 
work anyway." And voila, everything goes. This is what I put into my 
CMakeList that made Paraview execute my cool plugin (a itkFlipImageFilter :)

LINK_LIBRARIES( vtkITKImageBox
    ITKCommon ITKIO ITKBasicFilters
)

I know, diving a little bit more into CMake would have helped in the 
first place, but you just can't study everything before getting your 
work done.

What's a bit strange is that the plugin is very big (7MB). I am afraid 
that the vtkITKImageBox (which is about that big), or even some ITK 
stuff is cramped into the filter despite my efforts to link everything 
dynamically. I will try to find a solution to this.


Thanks for your help with everything Luis and best regards,
Christian




Christian Werner wrote:
> I am afraid I did. My vtkITKImageBox was build as a shared library, 
> too and this was only possible after rebuilding ITK with shared 
> libraries.
>
> Somehow, if you put that
>
> ADD_PARAVIEW_PLUGIN(SampleImageFilter "1.0"
> SERVER_MANAGER_XML SampleImageFilter.xml
> #GUI_RESOURCE_FILES SampleImageFilterGUI.xml
> SERVER_MANAGER_SOURCES vtkITKSampleImageFilter.cxx
> )
>
> into your CMakeList, the compiler does not really seem to care about 
> which libraries it has to compile against. It makes no difference for 
> the compiling and linking process. I do not even have to mention my 
> vtkITKImageBox library which is clearly needed by my filter.
>
> So these libraries oviously have to be available "globally" when 
> paraview runs. I added the ITK library path to the LD_LIBRARY_PATH, 
> which I think is the place where ParaView looks for shared libraries 
> but that did not help.
>
> I asked the guys form ParaView too about that. If everything works 
> fine and I have the time I could write a paper about my Paraview-ITK 
> Filtering.
>
> Best regards,
> Christian
>
>
> Luis Ibanez wrote:
>> Hi Christian,
>>
>>
>>   Did you build ITK as a Shared library ?
>>
>>
>> ---
>>
>> BTW: This  VERY interesting, you should
>> consider writing a paper for the Insight Journal   :-)
>>
>>            http://www.insight-journal.org
>>
>>
>>      Regards,
>>
>>
>>            Luis
>>
>>
>> -------------------------------------------------------
>> On Wed, Feb 24, 2010 at 1:38 PM, Christian Werner
>> <christian.werner at rwth-aachen.de> wrote:
>>  
>>> Hello!
>>>
>>> I wrote a nice VTK filter that incorporates ITK filters. It works 
>>> fine in a
>>> VTK-only environment. I was able to compile it as a ParaView plugin 
>>> but when
>>> I want to use it, I get an error messages which seems to indicate some
>>> missing ITK library or something:
>>>
>>> Attempting to load 
>>> /home/christian/.paraview-plugins/libSampleImageFilter.so
>>>    
>>>> Failed to load the shared library.
>>>> /home/christian/.paraview-plugins/libSampleImageFilter.so: undefined
>>>> symbol:
>>>> _ZN3itk11LightObject6DeleteEv
>>>>       
>>> I attached my CMakeList.txt. There's no
>>>
>>> TARGET_LINK_LIBRARIES(
>>>   ITKCommon ITKIO
>>>   vtkCommon vtkIO
>>> )
>>>
>>> or such in my CMakeList, but that does not seem to be a problem anyway.
>>> Everthing is compiled and linked just fine.
>>>
>>> Anyway, I tried
>>>
>>> TARGET_LINK_LIBRARIES(   vtkITKImageBox   #my library
>>>   ITKBasicFilters
>>> )
>>>
>>> or similar. But that turned into a cmake error:
>>>
>>> CMake Error at CMakeLists.txt:16 (TARGET_LINK_LIBRARIES):
>>>  Cannot specify link libraries for target "vtkITKImageBox" which is not
>>>  built by this project.
>>>
>>> whereas ommitting one of the above libraries, e.g. writing:
>>>
>>> TARGET_LINK_LIBRARIES(   vtkITKImageBox
>>> )
>>>
>>> works just fine. On the other hand it seems to be totally 
>>> unnecessary to do
>>> anything like that, because always everything compiles just fine, as 
>>> long as
>>> cmake ran succesful. When I compile for VTK-only it won't compile if 
>>> I do
>>> not add my library that I actually need for this filter...
>>>
>>> What do I have do write into my CMakeList??
>>>
>>>
>>> Best regards,
>>> Christian
>>>
>>>
>>> # create a paraview plugin containing server manager xml and the server
>>> # manager classes to build
>>> # this plugin can be loaded on the server side
>>>
>>> cmake_minimum_required(VERSION 2.4)
>>>
>>> PROJECT(vtkITKSampleImageFilter)
>>>
>>> INCLUDE("/home/christian/programming/pv-plugins/conf.cmake")
>>>
>>> #find and load ParaView settings
>>> FIND_PACKAGE(ParaView REQUIRED)
>>> INCLUDE(${PARAVIEW_USE_FILE})
>>>
>>> # Find ITK & VTK
>>> FIND_PACKAGE(ITK REQUIRED)
>>> INCLUDE(${ITK_USE_FILE})
>>>
>>>
>>> ADD_PARAVIEW_PLUGIN(SampleImageFilter "1.0"
>>>  SERVER_MANAGER_XML SampleImageFilter.xml
>>>  #GUI_RESOURCE_FILES SampleImageFilterGUI.xml
>>>  SERVER_MANAGER_SOURCES vtkITKSampleImageFilter.cxx
>>> )
>>>
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://www.kitware.com/products/protraining.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>>     
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list