ライブラリlibraw1394.so
の32ビットバージョンが必要と思われる、firewire用の古い取得プログラムがあります。
問題についてのいくつかのメモ:
uname -m
の出力は、ubuntu 64ビットがインストールされていることを示していると思います。
$ uname -m
x86_64
アプリケーションでlddを実行すると、出力はlib1394.soが見つからなかったことを示しています。
$ 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)
アプリケーションを実行すると、次のエラーが発生します。
$ ./smallv
./smallv: error while loading shared libraries: libraw1394.so.8: wrong ELF class: ELFCLASS64
ライブラリは/usr/lib/
にありますが、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
私はさまざまな投稿で解決策を探しています。それで、私はそれをコンパイルできるようにするために、私はアプリケーションのソースコードを持っていると思います。だから私は解決策をとる必要がありますが、それらを実行する方法がわかりません:
解決策1)ライブラリのi386(32ビット)バージョンをインストールする
解決策2)アプリケーションを再度コンパイルします
私は投稿を読んでいて、GetLibs、ia32-libs、multiarchのいずれかを使用する必要があるようです。問題へのフィードバックは役に立ちます!どうもありがとう!
ジェスペスタナ
まず、あなたの言うとおり、システムは64ビットアーキテクチャを使用しています。
あなたの問題の解決策はライブラリのi386(32ビット)バージョンをインストールするである可能性があると言ったように、その方法を説明しました。
Sudo apt-get install libraw1394-11:i386
これで、32ビットバージョンのlibraw
ライブラリがインストールされました。