加载共享库时出错:libQt5Multimedia.so.5:无法打开共享对象文件:没有这样的文件或目录

error while loading shared libraries: libQt5Multimedia.so.5: cannot open shared object file: No such file or directory

我有一个 32 位 linux Virtual Box,我正在上面编译我的 Qt c++ 代码。

我正在将目标文件复制到 64 位 linux 盒子(32 位可执行文件在这台电脑上应该仍然 运行)。

构建使用动态链接,所以我打算开始复制我需要的 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

我预计会发生这种情况,然后我将文件 libQt5Multimedia.so.5 从我的 32 位 linux qt lib 文件夹复制到我的 64 位 [=40] 上的目标目录=] 框。在我的目标文件夹中,我现在有文件:

Rpe
libQt5Multimedia.so.5

我现在再次 运行 Rpe 可执行文件,我希望它抱怨不同的 lib 文件,但它仍然抱怨找不到相同的 libQt5Multimedia.so.5 文件。

我做错了什么?

EDIT-1

LDD输出:

adadacha@duanedibbley:~/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)
adadacha@duanedibbley:~/sandbox$ 

我会为您的 "product" 创建一个目录,其中可执行文件位于 bin 子目录中,Qt 库(以及任何其他库)位于 lib 子目录中.

在父目录中,我将添加一个包装脚本来设置 $LD_LIBRARY_PATH 并执行二进制文件(未测试):

#!/bin/sh
dirname="$(dirname "[=10=]")"
exename="$(basename "[=10=]")"

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$dirname/lib"
export LD_LIBRARY_PATH
exec "$dirname/bin/$exename" $*