无法打开已知的共享对象文件

Posted

技术标签:

【中文标题】无法打开已知的共享对象文件【英文标题】:Cannot open shared object file which is known 【发布时间】:2019-05-13 13:05:45 【问题描述】:

我正在尝试在整个 cygwin 中执行我在 Qt 上制作的程序。它在我的开发计算机上以这种方式工作。在这里,我想在“新”环境中尝试一下。

当我输入 cygwin 命令时:./pm.exe -qws 它返回 path/to/executable/pm.exe: error while loading shared libraries: libQtXml.dll.4.8.7: cannot open shared object file: No such file or directory

我不明白的是这个库存在并且设置得很好:当我做which libQtXml.dll.4.8.7 它返回这个文件所在的正确路径......(这个路径设置在 $PATH 和 $ LD_LIBRARY_PATH 变量。)

我看不出是什么原因导致可执行文件没有考虑到这个库。

感谢您的帮助!

【问题讨论】:

尝试使用cygcheck pm.exe 来检查DLL。 感谢您的回答。这让我意识到问题不在于库的路径,因为命令cygcheck.exe pm.exe 返回cygcheck: could not find 'pm.exe'。它比我想象的更奇怪......我在好的目录中,命令的自动完成工作) 鉴于 cygcheck 文档,如果您的程序不在 PATH 中,您可能需要添加 ./。像这样:cygcheck ./pm.exe 哦,好的,谢谢!确实,看起来缺少一些 cygwin 依赖项。今晚我将启动一个完整的构建,我会看看明天会不会更好! 它工作!非常感谢,我在这个问题上卡了很长时间!这很奇怪,因为指示的错误与缺少的依赖项无关。但它的工作原理非常感谢您的帮助:) 【参考方案1】:

问题已解决:该错误与缺少 *.dll 文件有关。

要知道缺少哪个 dll,请运行命令 cygcheck ./your_exe.exe(感谢 Benjamin T 的解决方案)。

【讨论】:

以上是关于无法打开已知的共享对象文件的主要内容,如果未能解决你的问题,请参考以下文章

GDB“无法打开共享对象文件”问题

Roslaunch 无法打开共享对象文件:没有这样的文件或目录

运行 kivy 示例时无法打开共享对象文件

加载共享库时出错,无法打开共享对象文件:没有这样的文件或目录(hiredis)

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

自己的lib,另一台计算机:无法打开共享对象文件:没有这样的文件或目录