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

Re: OpenGL



On Wednesday 05 July 2006 16:52, Francesco Pietra wrote:
> ..... when (on jwm window manager) trying to
> launch the application from within its directory:
>
> $./<applicationname> return
> bash: error while loading shared libraries: libXm.so.3: cannot open shared
> object: No such file or directory

What do you see when you do
    $ ldd applicationname
?

On my 64 bit machine I get, for a correctly-installed application  (in this 
case, /usr/bin/perl):

$ ldd /usr/bin/perl
        libperl.so.5.8 => /usr/lib/libperl.so.5.8 (0x0000002a9566c000)
        libdl.so.2 => /lib/libdl.so.2 (0x0000002a9589b000)
        libm.so.6 => /lib/libm.so.6 (0x0000002a9599e000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0000002a95b24000)
        libc.so.6 => /lib/libc.so.6 (0x0000002a95c39000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x0000002a95e78000)
        /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 
(0x0000002a95556000)

on a 32-bit machine:
$ ldd /usr/bin/perl
        libdl.so.2 => /lib/libdl.so.2 (0x40020000)
        libm.so.6 => /lib/libm.so.6 (0x40023000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40045000)
        libc.so.6 => /lib/libc.so.6 (0x40096000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x401ca000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

As you can see, on the 64-bit processor, the numbers are 16 digits long; on 
the 32-bit processor, the numbers are only 8 digits long.  An 
improperly-installed application  {RealPlayer on 64-bit}  shows the 
following:

$ ldd realplay.bin
        linux-gate.so.1 =>  (0xffffe000)
        libgdk-x11-2.0.so.0 => not found
        libatk-1.0.so.0 => not found
        libgdk_pixbuf-2.0.so.0 => not found
        libpangoxft-1.0.so.0 => not found
        libpangox-1.0.so.0 => not found
        libpango-1.0.so.0 => not found
        libgobject-2.0.so.0 => not found
        libgmodule-2.0.so.0 => not found
        libdl.so.2 => /lib32/libdl.so.2 (0x5558b000)
        libglib-2.0.so.0 => not found
        libgtk-x11-2.0.so.0 => not found
        libpthread.so.0 => /lib32/libpthread.so.0 (0x55590000)
        libstdc++.so.5 => /usr/lib32/libstdc++.so.5 (0x555a2000)
        libm.so.6 => /lib32/libm.so.6 (0x5565c000)
        libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0x55680000)
        libc.so.6 => /lib32/libc.so.6 (0x5568b000)
        libX11.so.6 => /emul/ia32-linux/usr/X11R6/lib/libX11.so.6 (0x557bc000)
        /lib/ld-linux.so.2 (0x55555000)

This shows, not all the required libraries could be found.  The numbers are 8 
digits long, because even though it is a 64-bit processor, the application 
was compiled in 32-bit mode and so expecting 32-bit libraries.

Use ldd to check to see whether you application is expecting 32- or 64-bit 
libraries, and whether any are missing.  Also, try  {as root}  running 
ldconfig.

If there is a missing library, the easiest way to deal with that probably is 
to extract it manually from the corresponding i386 .deb file.  First use
$ ar x foo.deb
to split open the .deb, which will contain several files; including one called 
data.tar.gz  {which bears more than a passing resemblance to a Slackware 
package}.  The files you need are in there, so just un-tar this and copy them 
to your preferred location.

-- 
AJS
delta echo bravo six four at earthshod dot co dot uk



Reply to: