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

Jianming jianming.tom at gmail.com
Mon Feb 2 21:15:40 EST 2015


@Bill, the compiling of the the normal ITK examples are fine for me here.
It just when it links the ITK and VTK together problem happens.

@Matt, I will test it once I have the time.

I kind of did a workaround, since I just need the VXL in ITK code, so I
gave up linking ITK, but used the following CMakeLists.txt

cmake_minimum_required(VERSION 2.8)

PROJECT(BackProjection)

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

FIND_PACKAGE( OpenCV REQUIRED )
INCLUDE_DIRECTORIES(${OPENCV_INCLUDE_DIR})

FIND_PACKAGE(VXL REQUIRED)
INCLUDE(${VXL_CMAKE_DIR}/UseVXL.cmake)

SET(CMAKE_CXX_FLAGS "-g -O2 -fopenmp")

add_executable(BackProjection MACOSX_BUNDLE BackProjection)
add_executable(deviation MACOSX_BUNDLE deviation)
add_executable(imageviewer MACOSX_BUNDLE imageviewer)
add_executable(deviation_autopipeline MACOSX_BUNDLE deviation_autopipeline)
add_executable(ReadPLY MACOSX_BUNDLE ReadPLY.cxx)

target_link_libraries(ReadPLY ${VTK_LIBRARIES} )
target_link_libraries(BackProjection vnl vnl_algo ${VTK_LIBRARIES}
${OpenCV_LIBS})
target_link_libraries(deviation ${OpenCV_LIBS})
target_link_libraries(imageviewer ${OpenCV_LIBS})
target_link_libraries(deviation_autopipeline ${OpenCV_LIBS})

On 2 February 2015 at 21:48, Matt McCormick <matt.mccormick at kitware.com>
wrote:

> Hi Jianming,
>
> Could you please also try VTK Git master and report your results?
>
> Thanks,
> Matt
>
> On Mon, Feb 2, 2015 at 8:34 AM, Bill Lorensen <bill.lorensen at gmail.com>
> wrote:
> > 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
> > _____________________________________
> > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20150203/4fc2e8bf/attachment.html>


More information about the Insight-users mailing list