[PLUG] Link issue (I think)

King Beowulf kingbeowulf at gmail.com
Thu Aug 1 22:51:45 UTC 2013


On 08/01/2013 11:03 AM, John Jason Jordan wrote:
> For the seventh time I am attempting to install a program from source,
> this time on my Fedora 16 x86_64 laptop. The previous six failed, and
> so far this one is also going down in flames. However, I have not given
> up and I even think I see what is wrong.
> 
> The program is Sleepyhead. I have instructions which a helpful fellow
> is writing for Ubuntu users*, which I am occasionally translating for
> the RPM world. 
> 
> I used git to collect the source and put it in ~/sleepyhead-code. Then
> I installed (per the instructions) qt-devel, qtwebkit-devel and gcc-c++
> which, it turns out, were already installed with the latest versions.
> Then I ran qmake-qt4, which also exited without error. But when I then
> ran make -j2 I got a list of errors, some of which are:
> 
> /usr/bin/ld: warning: libnvidia-tls.so.260.19.21, needed
> by /usr/lib64/libGL.so, not found (try using -rpath or -rpath-link)
> /usr/bin/ld: warning: libnvidia-glcore.so.260.19.21, needed
> by /usr/lib64/libGL.so, not found (try using -rpath or -rpath-link)
> /usr/lib64/libGL.so: undefined reference to `_nv007tls'
> /usr/lib64/libGL.so: undefined reference to `_nv013glcore'
> /usr/lib64/libGL.so: undefined reference to `_nv014glcore'
> followed by another 18 lines like the last three.
> 
--------

John

# ldd /usr/lib64/libGL.so

will tell you if you need to reinstall the Nvidia package.  Nvidia
stomps on libGL.so (from the Mesa package).  You should see something
like this:

# ldd /usr/lib64/libGL.so
	linux-vdso.so.1 (0x00007fff2b970000)
	libnvidia-tls.so.319.32 => /usr/lib64/tls/libnvidia-tls.so.319.32
(0x00007fcb5e287000)
	libnvidia-glcore.so.319.32 => /usr/lib64/libnvidia-glcore.so.319.32
(0x00007fcb5bd2f000)
	libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fcb5b9f7000)
	libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fcb5b7e6000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fcb5b426000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fcb5b221000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fcb5af26000)
	libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fcb5ad08000)
	libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fcb5ab04000)
	libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007fcb5a8ff000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fcb5e7f2000)

Assuming, of course, that Fedora puts 32-bit libs in /usr/lib and 64-bit
libs in /usr/lib64

If libnvidia-{glcore | tls}.so.XXX.YY are missing (go look in
/usr/lib64) you will need to reinstall the Nvidia package, OR you can
uninstall Nvidia and reinstall nouveau-driver, Mesa and xorg-server
packages. That will restore all the F/OSS stuff.

Once you fix that, if you still get that "missing" error, compile with
something like:

# qmake-qt4 LIBS += -L/usr/lib64
# make -j2

(use the appropriate /usr/lib64 for your system and -j2 is just to speed
up compile on multicore/multithread systems so adjust as needed.)

As mentioned in prior posts, Sleepyhead uses Qmake (qmake-qt4 in Fedora)
and not the more venerable configure/make cycle.

For the future, to successfully build linux programs, you will need to
not only track down the dependencies, but also study up on the build
process each project uses (configure, cmake, qmake, etc).

References:
1.
http://sourceforge.net/apps/mediawiki/sleepyhead/index.php?title=Build_from_source
2. http://qt-project.org/doc/qt-4.8/qmake-running.html







More information about the PLUG mailing list