[ITK-users] [ITK-dev] Probelm building project with VTK 6.1 + ITK 4.7

Bill Lorensen bill.lorensen at gmail.com
Mon Feb 2 08:34:50 EST 2015


What you have should work. I just built this example:
http://itk.org/Wiki/ITK/Examples/Smoothing/MedianImageFilter

no problems. Can you try the same example?

On Mon, Feb 2, 2015 at 2:08 AM, Jianming <jianming.tom at gmail.com> wrote:
>
>
>
>
> Hi,
>
> I have the previous working fine code when I used VTK 5.6.1+ITK 3.20.1, but
> I got lots of problem when I wanted to reuse the code while upgrading to the
> new VTK/ITK version.
>
> My environment, Ubuntu 12.04, CMake 2.8.12.2, VTK 6.1, ITK 4.7. ItkVtkGlue
> is turned ON.
>
> The CMakeLists.txt is as the following, I checked the example,
>
> cmake_minimum_required(VERSION 2.8)
>
> PROJECT(BackProjection)
>
> FIND_PACKAGE(ITK REQUIRED)
> INCLUDE(${ITK_USE_FILE})
>
> if (ITKVtkGlue_LOADED)
>   find_package(VTK REQUIRED)
>   include(${VTK_USE_FILE})
> else()
>   find_package(ItkVtkGlue REQUIRED)
>   include(${ItkVtkGlue_USE_FILE})
>   set(Glue ItkVtkGlue)
> endif()
> add_executable(ReadPLY MACOSX_BUNDLE ReadPLY.cxx)
> target_link_libraries(ReadPLY ${Glue} ${VTK_LIBRARIES} ${ITK_LIBRARIES})
>
> ###
>
> When I build with make, the error is,
>
> [100%] Building CXX object CMakeFiles/ReadPLY.dir/ReadPLY.cxx.o
> Linking CXX executable ReadPLY
> CMakeFiles/ReadPLY.dir/ReadPLY.cxx.o: In function
> `vtkSmartPointer<vtkPLYReader>::New()':
> ReadPLY.cxx:(.text._ZN15vtkSmartPointerI12vtkPLYReaderE3NewEv[_ZN15vtkSmartPointerI12vtkPLYReaderE3NewEv]+0xd):
> undefined reference to `vtkPLYReader::New()'
> collect2: error: ld returned 1 exit status
> make[2]: *** [ReadPLY] Error 1
> make[1]: *** [CMakeFiles/ReadPLY.dir/all] Error 2
> make: *** [all] Error 2
>
> Interestingly, when I fully remove anything about ITK in my CMakeLists.txt,
> it doesn't show any error. So I suspect it is the ITK's build macro which is
> breaking my VTK code compiling.
> The working CMakeLists.txt is like,
>
> cmake_minimum_required(VERSION 2.8)
>
> PROJECT(ReadPLY)
>
> find_package(VTK REQUIRED)
> include(${VTK_USE_FILE})
>
> add_executable(ReadPLY MACOSX_BUNDLE ReadPLY.cxx)
>
> if(VTK_LIBRARIES)
>   target_link_libraries(ReadPLY ${VTK_LIBRARIES})
> else()
>   target_link_libraries(ReadPLY vtkHybrid vtkWidgets)
> endif()
>
>
> ####
>
> And the ReadPLY.cxx source code is, it is actually a VTK example, doesn't
> contain any ITK code. But I have the other source code file has ITK code,
> presenting this example just to show the problem.
>
> #include <vtkPolyData.h>
> #include <vtkPLYReader.h>
> #include <vtkSmartPointer.h>
> #include <vtkPolyDataMapper.h>
> #include <vtkActor.h>
> #include <vtkRenderWindow.h>
> #include <vtkRenderer.h>
> #include <vtkRenderWindowInteractor.h>
>
> int main ( int argc, char *argv[] )
> {
>   if(argc != 2)
>     {
>     std::cout << "Usage: " << argv[0] << "  Filename(.ply)" << std::endl;
>     return EXIT_FAILURE;
>     }
>
>   std::string inputFilename = argv[1];
>
>   vtkSmartPointer<vtkPLYReader> reader =
>     vtkSmartPointer<vtkPLYReader>::New();
>   reader->SetFileName ( inputFilename.c_str() );
>
>   // Visualize
>   vtkSmartPointer<vtkPolyDataMapper> mapper =
>     vtkSmartPointer<vtkPolyDataMapper>::New();
>   mapper->SetInputConnection(reader->GetOutputPort());
>
>   vtkSmartPointer<vtkActor> actor =
>     vtkSmartPointer<vtkActor>::New();
>   actor->SetMapper(mapper);
>
>   vtkSmartPointer<vtkRenderer> renderer =
>     vtkSmartPointer<vtkRenderer>::New();
>   vtkSmartPointer<vtkRenderWindow> renderWindow =
>     vtkSmartPointer<vtkRenderWindow>::New();
>   renderWindow->AddRenderer(renderer);
>   vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
>     vtkSmartPointer<vtkRenderWindowInteractor>::New();
>   renderWindowInteractor->SetRenderWindow(renderWindow);
>
>   renderer->AddActor(actor);
>   renderer->SetBackground(0.1804,0.5451,0.3412); // Sea green
>
>   renderWindow->Render();
>   renderWindowInteractor->Start();
>
>   return EXIT_SUCCESS;
> }
>
> ####
>
>
> _____________________________________
> 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.php
>
> 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://public.kitware.com/mailman/listinfo/insight-users
>



-- 
Unpaid intern in BillsBasement at noware dot com


More information about the Insight-users mailing list