[vtkusers] building vtk6, simple example

Marcus D. Hanwell marcus.hanwell at kitware.com
Mon Jun 24 11:39:19 EDT 2013


On Mon, Jun 24, 2013 at 9:25 AM, Randy Heiland <heiland at indiana.edu> wrote:

> Hello,
>
> Thought I'd take a stab at VTK6 and will ask the about the build process,
> in general, as well as a specific link error, while I also dig a little
> deeper.  I did a simple cmake/build via:
> cmake  -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++
>  -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc  ../VTK6.0.0.rc3
>
> and make install.  Then I downloaded the tarball from here:
> http://www.vtk.org/Wiki/VTK/Examples/Cxx/IO/SimplePointsReader , did a
> successful cmake on it, but then got:
>
> ~/dev/vtk6-play/SimplePointsReader/build$ make
> Scanning dependencies of target SimplePointsReader
> [100%] Building CXX object
> CMakeFiles/SimplePointsReader.dir/SimplePointsReader.cxx.o
> Linking CXX executable
> SimplePointsReader.app/Contents/MacOS/SimplePointsReader
> ld: library not found for -lvtkFiltersParallelFlowPaths
> collect2: ld returned 1 exit status
>
> This seemed curious, since I hadn't turned on any parallel flags in the
> VTK cmake.  But sure enough, I saw that some parallel libs had been built,
> e.g.:
> ~/dev/vtk6-build$ ls /usr/local/lib/libvtk*Paral*.dylib
> /usr/local/lib/libvtkFiltersParallel-6.0.1.dylib*
> /usr/local/lib/libvtkFiltersParallel-6.0.dylib@
> /usr/local/lib/libvtkFiltersParallelImaging-6.0.1.dylib*
> /usr/local/lib/libvtkFiltersParallelImaging-6.0.dylib@
> /usr/local/lib/libvtkIOParallel-6.0.1.dylib*
> /usr/local/lib/libvtkIOParallel-6.0.dylib@
> /usr/local/lib/libvtkParallelCore-6.0.1.dylib*
> /usr/local/lib/libvtkParallelCore-6.0.dylib@
>
> Fwiw, I also have:
> ~/dev/vtk6-build$ grep parallel CMakeCache.txt |grep bool
> Module_vtkFiltersParallelFlowPaths:BOOL=OFF
> Module_vtkFiltersParallelGeometry:BOOL=OFF
> Module_vtkFiltersParallelMPI:BOOL=OFF
> Module_vtkFiltersParallelStatistics:BOOL=OFF
> Module_vtkIOMPIParallel:BOOL=OFF
> Module_vtkIOParallelExodus:BOOL=OFF
> Module_vtkIOParallelLSDyna:BOOL=OFF
> Module_vtkIOParallelNetCDF:BOOL=OFF
> Module_vtkInfovisParallel:BOOL=OFF
> Module_vtkParallelMPI:BOOL=OFF
> Module_vtkRenderingParallel:BOOL=OFF
>
> So, a couple questions - why are parallel libs being built and why does
> this example seem to require them?  Apologies if I missed info on the wiki,
> etc.
>

Part of this stems from the CMakeLists.txt in the example - if you use
find_package(VTK) without specifying components then use ${VTK_LIBRARIES}
you will basically link to everything VTK built. This is not normally what
people want, and you can see the pre-6.0 version called out vtkHybrid. The
wiki page below provides more background,

http://www.vtk.org/Wiki/VTK/Build_System_Migration

It leads to the question of why the VTK you built thinks
vtkFiltersParallelFlowPaths was enabled when it was now. We will build some
of the parallel modules that do not require MPI for example - they are
probably in the StandAlone group, although it is possible they would be
better in a parallel group of their own. The examples attempt to work with
VTK 5 and 6, adding the components would make that harder to achieve which
is why I think their CMake code is written the way it is.

Hope that makes it clearer, thanks for bringing this up. I would like to
get to the bottom of why VTK has incorrectly labelled a module as enabled
that was not built.

Marcus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20130624/13bd033c/attachment.htm>


More information about the vtkusers mailing list