[Paraview] Linking failure of vtkpython on Mac OS X 10.5 for Paraview3-CVS

Michael Wild themiwi at gmail.com
Mon Aug 10 02:49:40 EDT 2009


On 9. Aug, 2009, at 20:59, Michael Wild wrote:

>
> On 9. Aug, 2009, at 18:02, Michael Wild wrote:
>
>>
>> On 9. Aug, 2009, at 16:51, Mike Jackson wrote:
>> [fixed TOFU]
>>>
>>> On Sun, Aug 9, 2009 at 9:17 AM, Michael Wild<themiwi at gmail.com>  
>>> wrote:
>>>> Hi all
>>>>
>>>> When I try to build a current version of ParaView3 from CVS on  
>>>> Mac OS X
>>>> 10.5.7 with Qt 4.5 (the official distribution), cmake-2.6-3 and
>>>> PARAVIEW_ENABLE_PYTHON=TRUE, linking of vtkpython fails with:
>>>>
>>>> /usr/bin/c++    -Wno-deprecated  -Wno-deprecated -O3 -DNDEBUG
>>>> -Wl,-search_paths_first -headerpad_max_install_names -fPIC   - 
>>>> flat_namespace
>>>> -undefined suppress -u _PyMac_Error
>>>> CMakeFiles/vtkpython.dir/vtkPythonAppInit.cxx.o  -o ../../../bin/ 
>>>> vtkpython
>>>> -lpthread -framework Python ../../../bin/libvtksys.pv3.7.dylib
>>>> ../../../bin/libvtkCommon.pv3.7.dylib
>>>> ../../../bin/libvtkFiltering.pv3.7.dylib ../../../bin/ 
>>>> libvtkIO.pv3.7.dylib
>>>> ../../../bin/libvtkGraphics.pv3.7.dylib
>>>> ../../../bin/libvtkImaging.pv3.7.dylib /usr/lib/libutil.dylib
>>>> ../../../bin/libvtkRendering.pv3.7.dylib
>>>> ../../../bin/libvtkVolumeRendering.pv3.7.dylib
>>>> ../../../bin/libvtkHybrid.pv3.7.dylib ../../../bin/ 
>>>> libvtkWidgets.pv3.7.dylib
>>>> ../../../bin/libvtkParallel.pv3.7.dylib
>>>> ../../../bin/libvtkGeovis.pv3.7.dylib ../../../bin/ 
>>>> libvtkInfovis.pv3.7.dylib
>>>> ../../../bin/libvtkViews.pv3.7.dylib ../../../bin/ 
>>>> libvtkInfovis.pv3.7.dylib
>>>> ../../../bin/libvtkWidgets.pv3.7.dylib ../../../bin/ 
>>>> libvtkHybrid.pv3.7.dylib
>>>> ../../../bin/libvtkParallel.pv3.7.dylib
>>>> ../../../bin/libvtkRendering.pv3.7.dylib ../../../bin/ 
>>>> libvtkIO.pv3.7.dylib
>>>> ../../../bin/libvtkDICOMParser.pv3.7.dylib
>>>> ../../../bin/libvtkNetCDF.pv3.7.dylib ../../../bin/ 
>>>> libvtkmetaio.pv3.7.dylib
>>>> ../../../bin/libvtksqlite.pv3.7.dylib ../../../bin/ 
>>>> libvtkpng.pv3.7.dylib
>>>> ../../../bin/libvtkzlib.pv3.7.dylib ../../../bin/ 
>>>> libvtkjpeg.pv3.7.dylib
>>>> ../../../bin/libvtktiff.pv3.7.dylib ../../../bin/ 
>>>> libvtkexpat.pv3.7.dylib
>>>> ../../../bin/libvtkGraphics.pv3.7.dylib
>>>> ../../../bin/libvtkverdict.pv3.7.dylib
>>>> ../../../bin/libvtkImaging.pv3.7.dylib
>>>> ../../../bin/libvtkFiltering.pv3.7.dylib
>>>> ../../../bin/libvtkCommon.pv3.7.dylib ../../../bin/ 
>>>> libvtksys.pv3.7.dylib -lm
>>>> ../../../bin/libvtkftgl.pv3.7.dylib ../../../bin/ 
>>>> libvtkfreetype.pv3.7.dylib
>>>> ../../../bin/libvtkexoIIc.pv3.7.dylib ../../../bin/ 
>>>> libvtklibxml2.pv3.7.dylib
>>>> ../../../bin/libvtkalglib.pv3.7.dylib ../../../bin/ 
>>>> libvtkproj4.pv3.7.dylib
>>>> ld: file not found: QtGui.framework/Versions/4/QtGui
>>>> collect2: ld returned 1 exit status
>>>>
>>>> Looking at the library references (otool -L), I see that e.g.
>>>> bin/libvtkRendering.pv3.7.dylib references QtGui.framework/ 
>>>> Versions/4/QtGui
>>>> (that being the install-name of
>>>> /Library/Frameworks/QtGui.framework/Versions/4/QtGu). Howerver,  
>>>> why the
>>>> linker isn't able to pick up this dependency isn't clear to me,  
>>>> because it's
>>>> right there, on the default search path in
>>>> /Library/Frameworks/QtGui.framework/Versions/4/QtGui.
>>>>
>>>> Besides, shouldn't CMake figure out the transitive dependencies  
>>>> and add
>>>> -framework QtGui (and friends) to the link line automagically?
>>>>
>>>> What irritates me, is that the dashboard doesn't show anything  
>>>> (however,
>>>> that one uses OS X 10.4):
>>>> http://www.cdash.org/CDash/buildSummary.php?buildid=398013
>>>>
>>>> Any idea what's going wrong here?
>>>>
>>>> Michael
>>>>
>>>
>>> Not sure what official version of Qt ParaView 3.8 is going to  
>>> support.
>>> My hope would be the current version (4.5). If they are still only
>>> supporting 4.3 (which based on recent email traffic seems to be the
>>> case) then you may be on your own to try and figure out what is  
>>> wrong,
>>> or at least "lead the way". I know I have to patch the ParaView tree
>>> to get it to build against Qt 4.5 Cocoa and then do some manual file
>>> copying after the packages are made.
>>>
>>> Mike
>>
>>
>> I don't think this is true. Have a look at the following file  
>> (which currently is HEAD), starting from line 94:
>>
>> http://public.kitware.com/cgi-bin/viewcvs.cgi/CMakeLists.txt?annotate=1.108&root=ParaView3
>>
>>
>> Michael
>
>
> Ok, I kind of tracked it down, although I couldn't solve it...  
> Through bisection I found the following:
>
> - Before the commit from Fri Jul 31 14:52:47 2009 "ENH: Applying  
> patch transitive3.patch, see vtk-dev thread #Use  
> LINK_INTERFACE_LIBRARIES for VTK libs" by Mathieu Malaterre  
> vtkpython compiles just fine. This commit then causes the linking of  
> the vtkParallel library to fail (looks like missing OpenGL libraries  
> to me).
>
> - All subsequent commits have the same problem, until...
>
> - the commit from Fri Jul 31 19:25:31 2009 by David Partyka titled  
> "COMP: link Parallel against opengl when rendering is enabled."  
> introduces the linking failure described in my first message.
>
>
> Michael
>


Linking vtkpython against vtkQtChart solves the problem for me.  
However, I'm not sure this is the proper thing to do...

diff --git a/VTK/Wrapping/Python/CMakeLists.txt b/VTK/Wrapping/Python/ 
CMakeLists.txt
index 932ac7f..afb7e72 100644
--- a/VTK/Wrapping/Python/CMakeLists.txt
+++ b/VTK/Wrapping/Python/CMakeLists.txt
@@ -57,7 +57,8 @@ SET(VTKPYTHON_LINK_LIBS
    vtkFiltering
    vtkIO
    vtkGraphics
-  vtkImaging )
+  vtkImaging
+  vtkQtChart )

  SET (vtkpython_pyc_depends
      vtkCommonPython


More information about the ParaView mailing list