[vtkusers] 3DConnexion, regression with VTK6 (was: Build error with 3d Connexion device)
Benoit Rosa
benoit.rosa at kuleuven.be
Mon Jul 20 05:11:25 EDT 2015
Hi all,
Following up on the previously reported problem, I just tried to build
everything with VTK 5 (VTK 5.10.1 tarball source available on the VTK
downloads page). The result is that it works perfectly.
I checked again, and in VTK6 the cmake does not make use of the
VTK_TDX_INCLUDE_PATH and VTK_TDX_OBJECT_PATH variables, and as such does
not find the 3DConnexion library at link, even if it is inside the
LD_LIBRARY_PATH. The problem is the same with the 6.1 and 6.2 tarballs
from the website, as well as with a fresh checkout from the git
repository. I always get a lot of "undefined reference to MagellanX"
errors while building : http://pastebin.com/MstU9PbN
It seems like a regression to me, since I can't build any VTK 6 version
with TDx support. I had a look at the source files that VTK6 can't build
with TDx support, and they are mostly similar to VTK5 implementations,
so I don't think any problem comes from there. It really looks like
there is a problem in the build process that has been introduced with VTK6.
I will now forward the following of the discussion to the vtk-developers
mailing list, I just posted it on the users list as a pointer, in case
somebody encounters the same problem as I do.
Best,
Benoit
On 17/07/15 19:00, Benoit Rosa wrote:
> Hi all,
>
> I try to make a 3DConnexion space navigator work with VTK+Qt on Linux.
> I Basically followed the steps given here :
> http://www.vtk.org/Wiki/VTK/3DConnexion_Devices_Support (by the way,
> the link to the CMakeLists.txt file is wrong).
>
> I use VTK 6.2 (also tried with version 6.3) and Qt 5, on ubuntu 12.04
> with cmake.
>
> I will make a long post (sorry) explaining all the different hassles
> that I had, because there are many. I tried to look a lot on the
> internet for possible resolution, but without much luck.
>
> Everything goes fine on the driver side, I can run examples and
> happily see the cube moving on the screen. Installation of the SDK
> goes well, and I can also run xapp without any problem.
>
> Hassle begins with the Cmake. I can run ccmake and turn on the
> VTK_USE_TDx to ON, but have no variable named VTK_TDX_INCLUDE_PATH or
> VTK_TDX_OBJECT_PATH. WHen I try to run directly cmake and define those
> variables, cmake fires a warning saying that they are not used by the
> project.
>
> Anyway, configuration goes through so let's try to build ... And here
> comes a lot of "Undefined reference to MagellanX" errors. I managed to
> go through those by editing
> Rendering/OpenGL/CMakeFiles/vtkRenderingOpenGL.dir/link.txt and adding
> -lxdrvlib to the linker dependencies, but this is getting nasty
> already ... But fixing the link, we can go further.
>
> Now at link of ../../lib/libvtkGUISupportQt-6.2.so, I get the following :
>
> CMakeFiles/vtkGUISupportQt.dir/QVTKApplication.cxx.o: In function
> `QVTKApplication::setDevice(vtkTDxDevice*)':
> [home]/VTK-6.2.0/GUISupport/Qt/QVTKApplication.cxx:58: undefined
> reference to `QVTKApplication::CreateDevice(vtkTDxDevice*)'
>
> This error is particularly weird, since CreateDevice is a signal
> defined in QVTKApplication.h, I don't really get why it appears.
> Moreover, the QObject::connect on line 28 of the same file connects
> SIGNAL(CreateDevice(vtkTDxDevice *) , so the undefined reference error
> should already fire at that moment ?
>
> If anybody has some clues for my problem, that would be great. I tried
> to hack in here and there, and I manage to get the thing finally
> compiling, but get then runtime errors about missing slot
> QVTKApplication::setDevice, so I guess I should compile correctly
> without hacking in before continuing.
>
> Thanks for your help !
> Benoit
>
--
Benoit Rosa, Postdoctoral researcher, PhD
KU Leuven, Department of Mechanical Engineering, division PMA
Celestijnenlaan 300, box 2420
3001 Leuven
Email :benoit.rosa at kuleuven.be
Phone : +32 16 37 79 00
--
More information about the vtkusers
mailing list