如何解决: dyld: Library not loaded: @rpath/libpython3.9.dylib

2021-08-04 12:08:55 +08:00
 MasterCai

在运行一个 C++可执行文件的时候遇到如下报错:

  Referenced from: /usr/local/lib/libpangolin.dylib
  Reason: image not found

网上查了一堆和"@rpath"相关的资料,但是还是没太明白应该怎么修改😅 看了一下 libpython3.9.dylib 是有的,python 是用 miniforge3 安装的,使用系统为 macos big sur 11.4,以前在 10.15 的系统上运行同样的程序完全没有问题,有没有人遇到过这种问题?如何解决?

2611 次点击
所在节点    macOS
13 条回复
MasterCai
2021-08-04 12:11:41 +08:00
网上部分解决方案是用 xcode 解决的,我没有 Xcode,有没有别的方式可以解决
ai277014717
2021-08-04 13:27:26 +08:00
把动态库放到对应路径中即可。
也可以看看 DYLD_FALLBACK_LIBRARY_PATH 能不能解决
Liang
2021-08-04 14:16:55 +08:00
m1 mac mini,安装扩展的时候报了类似的错,搞了两天,没搞好,重装了
MasterCai
2021-08-04 14:36:08 +08:00
@ai277014717 这个动态库是 @rpath 开头的,就是不知道具体的位置在哪呀,DYLD_FALLBACK_LIBRARY_PATH 这个是什么意思呢?
@Liang 是系统重装了吗?最后解决了吗?
ai277014717
2021-08-04 14:42:45 +08:00
@MasterCai 使用 otool 可以查看 rpath 的值。DYLD_FALLBACK_LIBRARY_PATH 可以在查找动态库的时候添加一些兜底的目录。
MasterCai
2021-08-04 15:45:29 +08:00
修改 DYLD_FALLBACK_LIBRARY_PATH 这个方法在 terminal 里成功了,但是在 clion 里还是不行,
我用```otool -l /usr/local/lib/libpangolin.dylib```命令查看了一下,也没有找到什么有用的信息,还是没能查看到“@rpath”的信息,唯一相关的片段如图![]( https://raw.githubusercontent.com/mastercaiOSS/OSS/master/blog/2021/08-04-sEY1Ou.png),麻烦能不能说具体一点🙏,
MasterCai
2021-08-04 15:46:35 +08:00
ai277014717
2021-08-04 16:48:54 +08:00
@MasterCai 搜下 LC_RPATH 就是 rpath 的值
MasterCai
2021-08-04 17:21:11 +08:00
执行```otool -l /usr/local/lib/libpangolin.dylib```之后搜了一下,里面并没有 LC_RPATH 这个值😢😢
ai277014717
2021-08-04 19:19:25 +08:00
@MasterCai 多研究下吧。可能哪里搞错了。MachOView 也可以查看 rpath 效果和 otool 应该一样
discrete
2021-08-05 03:14:51 +08:00
重装一下 Command Line Tools 试试
shawnsh
2021-08-05 09:18:36 +08:00
otool -l 文件,看下 rpath 路径,然后用 otool -L 文件,看依赖的库,默认应该是 framework 那个目录
MasterCai
2021-08-05 09:20:42 +08:00
@shawnsh 我用 otool -l 和 MachOView 都没看到“LC_RPATH”相关的字段,很奇怪,所以就不知道 rpath 具体是哪个路径

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/793575

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX