[vtkusers] VTK static link with Qt app on Mac OS X

David Gobbi david.gobbi at gmail.com
Mon Sep 27 08:51:27 EDT 2010


Hi Gib,

You should probably be building VTK with VTK_USE_COCOA=ON. Qt 4.5 and
later use Cocoa, older versions of Qt use Carbon.  VTK must be built
with the GUI toolkit that Qt uses.

  David


On Mon, Sep 27, 2010 at 3:13 AM, André Prins <a.h.prins at gmail.com> wrote:
> Hi Gib,
>
> Although I am not a Mac user, my first guess would be that you are
> missing some Apple/Mac libraries when linking. Perhaps -lAGL -lCocoa
> (or -lCarbon).
>
> You could try to google for the exact libraries corresponding to the
> missing symbols. Alternatively, you could check which libraries were
> used to link vtkRendering.
>
> Regards,
> Andre
>
> On Mon, Sep 27, 2010 at 8:11 AM, Gib Bogle <g.bogle at auckland.ac.nz> wrote:
>> Almost there ... having got the linking of static VTK library with my Qt app
>> (shared Qt libraries) working on Linux, I'm now trying to do the same thing
>> on Mac OS X.  As before, I first got the shared VTK case working.  I then
>> built the static VTK libraries, and added all those not already there to the
>> LIBS list in Qt Creator, which now looks like this:
>>
>> LIBS += -L/Users/mbog002/code/VTK-static/bin -lQVTK -lvtkRendering
>> -lvtkGraphics  -lvtkIO \
>> -lvtkCommon -lvtkInfovis -lvtkViews -lvtkWidgets -lvtkHybrid -lvtkParallel
>> -lvtkverdict \
>> -lvtkftgl -lvtkfreetype -lvtkNetCDF -lvtkmetaio -lvtksqlite -lvtkpng
>> -lvtkzlib \
>> -lvtkjpeg -lvtktiff -lvtkexpat -lVPIC -lCosmo -lvtkexoIIc -lvtklibxml2
>> -lvtkalglib \
>> -lvtkVolumeRendering -lvtkFiltering -lvtkImaging -lvtksys -lvtkQtChart \
>> -lGL -lGLU -lglut
>>
>> This generates a large number of "undefined symbol" link errors.  Here is a
>> sample (sorry about the formatting):
>>
>> Undefined symbols:
>>  "_HIViewGetViewForMouseEvent", referenced from:
>>      myWinEvtHndlr(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)  in
>> libvtkRendering.a(vtkCarbonRenderWindowInteractor.cxx.o)
>>  "_HIViewFindByID", referenced from:
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::CreateAWindow()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_aglSetCurrentContext", referenced from:
>>      vtkCarbonRenderWindow::MakeCurrent()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::MakeCurrent()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::DestroyWindow()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::CreateOffScreenWindow(int, int)in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::CreateAWindow()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_aglSetOffScreen", referenced from:
>>      vtkCarbonRenderWindow::CreateOffScreenWindow(int, int)in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_GetWindowPort", referenced from:
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::CreateAWindow()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_aglDisable", referenced from:
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_GetControlRegion", referenced from:
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_HIViewConvertRect", referenced from:
>>      vtkCarbonRenderWindow::UpdateGLRegion()       in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_aglChoosePixelFormat", referenced from:
>>      vtkCarbonRenderWindowInternal::ChoosePixelFormat(int, int, int, int,
>> int, int, int)in libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>      vtkCarbonRenderWindowInternal::CreateContext(int, int&, int&, int&,
>> int&, int&, char const*&)in libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_MoveWindow", referenced from:
>>      vtkCarbonRenderWindow::SetPosition(int, int)in
>> libvtkRendering.a(vtkCarbonRenderWindow.cxx.o)
>>  "_CGGetLastMouseDelta", referenced from:
>>      vtkCarbonLeaveCheck(__EventLoopTimer*, void*) in
>> libvtkRendering.a(vtkCarbonRenderWindowInteractor.cxx.o)
>>      myWinEvtHndlr(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)  in
>> libvtkRendering.a(vtkCarbonRenderWindowInteractor.cxx.o)
>>  "___CFConstantStringClassReference", referenced from:
>>      cfstring=VRAM,totalsize in
>> libvtkRendering.a(vtkCoreGraphicsGPUInfoList.cxx.o)
>>
>> When I built the static VTK libraries I used exactly the same ccmake
>> configure settings as for the shared libraries, except of course for
>> BUILD_SHARED_LIBS. Is this the right thing to do? If the VTK build is OK I
>> must be missing some libraries, but what?  Are these X11 functions?  Thanks
>> in advance for suggestions.
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Please keep messages on-topic and check the VTK FAQ at:
>> http://www.vtk.org/Wiki/VTK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>



More information about the vtkusers mailing list