Eu tenho um programa de aquisição antigo para um firewire que parece precisar da versão de 32bits da biblioteca libraw1394.so
.
Algumas notas, sobre o problema:
Eu acho que a saída de uname -m
indica que eu tenho um 64bits do Ubuntu instalado:
$ uname -m
x86_64
Se eu executar o ldd no meu aplicativo, a saída indica que o lib1394.so não foi encontrado:
$ ldd ./smallv
linux-gate.so.1 => (0xf76e9000)
libsvs.so => /usr/local/svs/bin/libsvs.so (0xf76c7000)
libsvscalc.so => /usr/local/svs/bin/libsvscalc.so (0xf76b7000)
libsvscap.so => /usr/local/svs/bin/libsvscap.so (0xf76a0000)
libfltk.so.1.1 => /usr/local/svs/bin/libfltk.so.1.1 (0xf761a000)
libfltk_gl.so.1.1 => /usr/local/svs/bin/libfltk_gl.so.1.1 (0xf7612000)
libGLU.so.1 => /usr/lib32/libGLU.so.1 (0xf7573000)
libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1 (0xf74a1000)
libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf73b5000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf739a000)
libm.so.6 => /lib32/libm.so.6 (0xf7370000)
libc.so.6 => /lib32/libc.so.6 (0xf71f1000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf71d3000)
libdcap.so => /usr/local/svs/bin/libdcap.so (0xf71c5000)
libraw1394.so.8 => not found
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf71b2000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf707c000)
libnvidia-tls.so.280.13 => /usr/lib32/nvidia-current/tls/libnvidia-tls.so.280.13 (0xf7079000)
libnvidia-glcore.so.280.13 => /usr/lib32/nvidia-current/libnvidia-glcore.so.280.13 (0xf5767000)
librt.so.1 => /lib32/librt.so.1 (0xf575e000)
libdl.so.2 => /lib32/libdl.so.2 (0xf5759000)
/lib/ld-linux.so.2 (0xf76ea000)
libraw1394.so.8 => not found
libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf573a000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf5735000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf572e000)
Quando executo o aplicativo, recebo o seguinte erro:
$ ./smallv
./smallv: error while loading shared libraries: libraw1394.so.8: wrong ELF class: ELFCLASS64
A biblioteca está localizada em /usr/lib/
, mas é na versão ELF63:
$ readelf -h /usr/lib/libraw1394.so
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x4460
Start of program headers: 64 (bytes into file)
Start of section headers: 58768 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 7
Size of section headers: 64 (bytes)
Number of section headers: 26
Section header string table index: 25
Eu tenho procurado uma solução em vários posts. Então, eu acho que tenho o código-fonte dos aplicativos para poder compilá-lo. Então eu tenho que soluções, mas eu não sei como executá-las:
solution 1) Instale a versão i386 (32bits) da biblioteca
solução 2) Compile o aplicativo novamente
Eu tenho lido posts e parece que eu deveria usar tanto GetLibs como ia32-libs ou multiarch. Por favor, qualquer feedback para o problema será útil!
Muito obrigado!
jespestana