[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Long library names not found


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



Reply to: