我有一个32位,我正在编译我的Qt c++代码。
我正在将目标文件复制到64位linux框中(32位可执行文件仍应在此PC上运行)。
构建使用动态链接,所以我将开始在我需要的Qt文件之间进行复制。我计划手动运行这个程序,让它告诉我丢失了哪些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文件夹复制到64位linux框的目标目录中。在我的目标文件夹中,我现在有了以下文件:
Rpe
libQt5Multimedia.so.5我现在再次运行Rpe可执行文件,我希望它会抱怨一个不同的lib文件,但是它仍然在抱怨没有找到相同的libQt5Multimedia.so.5文件。
我在这里做错什么了?
编辑-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$ 发布于 2016-05-24 07:51:01
我将使用bin子目录中的可执行文件和lib子目录中的Qt库(和任何其他库)为您的“产品”创建一个目录。
在父目录中,我将添加一个包装器脚本来设置$LD_LIBRARY_PATH并执行二进制文件(未测试):
#!/bin/sh
dirname="$(dirname "$0")"
exename="$(basename "$0")"
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$dirname/lib"
export LD_LIBRARY_PATH
exec "$dirname/bin/$exename" $*https://stackoverflow.com/questions/37406624
复制相似问题