[Paraview] ParaView 3.5 and 3.6 build problem, libGL.so location, OpenSUSE 11.1
Graham Macpherson
g.macpherson at opencfd.co.uk
Tue Jun 23 06:51:14 EDT 2009
Hello,
I had an OpenGL related problem building ParaView 3.5 and 3.6. I'm running
OpenSUSE 11.1, 2.6.27.23-0.1, x86_64, with NVIDIA version 185.18.14 drivers
and OpenGL which came from NVIDIA's repository, i.e. here
ftp://download.nvidia.com/opensuse/11.1/x86_64/
When it was linking some executables I got a load of errors of the likes of:
Linking CXX executable ../../../../bin/ImagingCxxTests
/usr/lib64/libGL.so: undefined reference to `_nv001622gl'
/usr/lib64/libGL.so: undefined reference to `_nv001299gl'
/usr/lib64/libGL.so: undefined reference to `_nv001491gl'
...
etc
The problem comes from the fact that /usr/lib64/libGL.so doesn't seem to be
the correct location for the proper libGL.so, at least on OpenSUSE 11.1 with
NVIDIA drivers. If I run
ldd /usr/bin/* | grep libGL.so
or
ldd /usr/lib64/* | grep libGL.so
then every system executable and library calling libGL.so is calling it from
this location:
libGL.so.1 => /usr/X11R6/lib64/libGL.so.1
rather than
/usr/lib64/libGL.so
where CMake is looking for it. In the past, I think the packages of drivers
were creating a copy of libGL.so in /usr/lib64 (for example I have
/usr/lib64/libGL.so.180.44 from previous drivers, which was soft-linked to
/usr/lib64/libGL.so) so it was OK to link to it, but they seem to have stopped
doing that in the most recent version, as that's apparently not where the OS
is going to look for it.
The reason I had linking problems is that I had the old version of libGL.so
still lurking in /usr/lib64/, so it was linking against the wrong version. If
I manually create soft-links in /usr/lib64 to point to the correct libraries
in /usr/X11R6/lib64/ then ParaView builds fine.
I could suggest that the CMake looks in /usr/X11R6/lib64 in preference to
/usr/lib64, but I don't know if this is a portable, general solution.
Regards,
Graham
More information about the ParaView
mailing list