首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载共享库时出错: libQt5Multimedia.so.5:无法打开共享对象文件:没有此类文件或目录

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

Stack Overflow用户
提问于 2016-05-24 07:07:35
回答 1查看 8.5K关注 0票数 3

我有一个32位,我正在编译我的Qt c++代码。

我正在将目标文件复制到64位linux框中(32位可执行文件仍应在此PC上运行)。

构建使用动态链接,所以我将开始在我需要的Qt文件之间进行复制。我计划手动运行这个程序,让它告诉我丢失了哪些lib文件。我知道很多我需要的文件,所以它不会花我很长时间(通常)。

因此,在我的64位框目标文件夹中,我有以下文件:

代码语言:javascript
运行
复制
Rpe

因此,我运行我的可执行文件"Rpe“,它抱怨道:

代码语言:javascript
运行
复制
./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框的目标目录中。在我的目标文件夹中,我现在有了以下文件:

代码语言:javascript
运行
复制
Rpe
libQt5Multimedia.so.5

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

我在这里做错什么了?

编辑-1

LDD产出:

代码语言:javascript
运行
复制
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$ 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-24 07:51:01

我将使用bin子目录中的可执行文件和lib子目录中的Qt库(和任何其他库)为您的“产品”创建一个目录。

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

代码语言:javascript
运行
复制
#!/bin/sh
dirname="$(dirname "$0")"
exename="$(basename "$0")"

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$dirname/lib"
export LD_LIBRARY_PATH
exec "$dirname/bin/$exename" $*
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37406624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档