Qt C++コードをコンパイルする32ビットのLinux仮想ボックスがあります。共有ライブラリの読み込み中にエラーが発生しました:libQt5Multimedia.so.5:共有オブジェクトファイルを開くことができません。そのようなファイルまたはディレクトリはありません。
対象のファイルを64ビットのLinuxボックスにコピーしています(32ビットの実行ファイルはこのPC上で実行する必要があります)。
ビルドでは動的リンクが使用されているため、必要なQtのlibファイルをコピーし始めました。私は、プログラムを実行して手動でこれを行うことを計画し、どのlibファイルが不足しているかを教えさせる+私は長い間(通常は)時間がかかりませんので、必要なファイルの多くを知っています。
だから私の64ビットボックスのターゲットフォルダに、私はファイルを持っている:
Rpe
だから私は「RPE」と呼ばれる私の実行可能ファイルを実行すると、それは文句:
./Rpe: error while loading shared libraries: libQt5Multimedia.so.5: cannot open shared object file: No such file or directory
私はこれが起こることを期待私の32ビットのlinux qt libフォルダから64ビットのLinuxボックスのターゲットディレクトリにlibQt5Multimedia.so.5ファイルをコピーします。しかし、それはまだ発見されていない同じlibQt5Multimedia.so.5
ファイル文句を言っている、私は今、再びRPEの実行可能ファイルを実行して、私はそれは違うのlibファイルに文句を言うことを期待
Rpe
libQt5Multimedia.so.5
:私のターゲットフォルダで、私は今のファイルを持っています。
私はここで間違っていますか?
EDIT-1
LDD出力:私はbin
サブディレクトリに実行可能とQtライブラリ(および他のあなたの "製品" のためのディレクトリを作成します
[email protected]:~/sandbox$ ldd Rpe
linux-gate.so.1 => (0xf7731000)
libQt5Multimedia.so.5 => not found
libQt5Network.so.5 => not found
libQt5Xml.so.5 => not found
libQt5Core.so.5 => not found
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf7616000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf75f9000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf744a000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7404000)
/lib/ld-linux.so.2 (0x5661f000)
[email protected]:~/sandbox$
そして、何 'LDDは'言うこのライブラリからロードしなければならないのでしょうか? –
trojanfoe
@trojanfoe良い点は、私の質問にこれを追加しました:) –
これで '/ usr/local/lib'やどこかにライブラリを追加する必要がありますか? – trojanfoe