Long library names not found
Hello,
When installing portaudio (the standard way from a snapshot) the following
files are created:
lrwxrwxrwx 1 root root 21 2009-10-20 00:26 libportaudio.so -> libportaudio.so.2.0.0
lrwxrwxrwx 1 root root 21 2009-10-20 00:26 libportaudio.so.2 -> libportaudio.so.2.0.0
-rwxr-xr-x 1 root root 361915 2009-10-20 00:26 libportaudio.so.2.0.0
Running gcc to compile works fine like this:
${CC} -m32 -olinrad -lvgagl -lvga -lportaudio -lpthread \
When I run ldd the result is like this:
P4:/home/portaudio# ldd ./linrad
linux-gate.so.1 => (0xb7f8d000)
libvgagl.so.1 => /usr/local/lib/libvgagl.so.1 (0xb7f6d000)
libvga.so.1 => /usr/local/lib/libvga.so.1 (0xb7eec000)
libportaudio.so.2 => not found
Running the program is not possible because libportaudio is not found.
I have tried under Debian squeeze (2.6.30) as well as under Debian Etch
(2.6.26). They give the same error. I have also tried Ubuntu 9.04 (2.6.28)
where there is no error. ldd finds the library and the program runs ok.
I note that /usr/local/lib/libportaudio.so.2 is a rather long file name.
Also that /usr/local/lib/libvgagl.so.1 is found in the same directory.
By adding a symbolic link /usr/lib/libportaudio.so.2 I can make my
program run under Debian. Another way to make it work under Debian
is to type:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Then the library is found until next reboot.
It seems to me this is a bug but I do not know in which package.
Seems like the loading of runtime libraries with 32 characters is
too much under Debian but ok under Ubuntu. I did not try any other
distributions.
Regards
Leif
Reply to: