V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MasterCai
V2EX  ›  macOS

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

  •  
  •   MasterCai · 117 天前 · 1268 次点击
    这是一个创建于 117 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在运行一个 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 的系统上运行同样的程序完全没有问题,有没有人遇到过这种问题?如何解决?

    第 1 条附言  ·  117 天前

    报错信息少了一行🥲

    dyld: Library not loaded: @rpath/libpython3.9.dylib
    Referenced from: /usr/local/lib/libpangolin.dylib
    Reason: image not found
    
    第 2 条附言  ·  116 天前

    问题最后解决了,解决方法是我乱猜“@RPATH”解决的😅把libpython3.9.dylib方法和libpangolin.dylib同级的/usr/local/lib目录下解决了问题,解决问题的过程中也了解到了很多新的东西,MachOView这个原项目早就不维护了,贴上一个M1版本可以用MachOView: https://github.com/obaby/machoview-obaby-branch

    13 条回复    2021-08-05 09:20:42 +08:00
    MasterCai
        1
    MasterCai   117 天前
    网上部分解决方案是用 xcode 解决的,我没有 Xcode,有没有别的方式可以解决
    ai277014717
        2
    ai277014717   117 天前
    把动态库放到对应路径中即可。
    也可以看看 DYLD_FALLBACK_LIBRARY_PATH 能不能解决
    Liang
        3
    Liang   117 天前
    m1 mac mini,安装扩展的时候报了类似的错,搞了两天,没搞好,重装了
    MasterCai
        4
    MasterCai   117 天前
    @ai277014717 这个动态库是 @rpath 开头的,就是不知道具体的位置在哪呀,DYLD_FALLBACK_LIBRARY_PATH 这个是什么意思呢?
    @Liang 是系统重装了吗?最后解决了吗?
    ai277014717
        5
    ai277014717   117 天前
    @MasterCai 使用 otool 可以查看 rpath 的值。DYLD_FALLBACK_LIBRARY_PATH 可以在查找动态库的时候添加一些兜底的目录。
    MasterCai
        6
    MasterCai   117 天前
    修改 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
        7
    MasterCai   117 天前
    ai277014717
        8
    ai277014717   117 天前
    @MasterCai 搜下 LC_RPATH 就是 rpath 的值
    MasterCai
        9
    MasterCai   117 天前
    执行```otool -l /usr/local/lib/libpangolin.dylib```之后搜了一下,里面并没有 LC_RPATH 这个值😢😢
    ai277014717
        10
    ai277014717   117 天前
    @MasterCai 多研究下吧。可能哪里搞错了。MachOView 也可以查看 rpath 效果和 otool 应该一样
    discrete
        11
    discrete   116 天前
    重装一下 Command Line Tools 试试
    shawnsh
        12
    shawnsh   116 天前 via Android
    otool -l 文件,看下 rpath 路径,然后用 otool -L 文件,看依赖的库,默认应该是 framework 那个目录
    MasterCai
        13
    MasterCai   116 天前
    @shawnsh 我用 otool -l 和 MachOView 都没看到“LC_RPATH”相关的字段,很奇怪,所以就不知道 rpath 具体是哪个路径
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1310 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:06 · PVG 02:06 · LAX 10:06 · JFK 13:06
    ♥ Do have faith in what you're doing.