
在运行一个 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 的系统上运行同样的程序完全没有问题,有没有人遇到过这种问题?如何解决?
报错信息少了一行
dyld: Library not loaded: @rpath/libpython3.9.dylib Referenced from: /usr/local/lib/libpangolin.dylib Reason: mage not found 问题最后解决了,解决方法是我乱猜“@RPATH”解决的把libpython3.9.dylib方法和libpangolin.dylib同级的/usr/local/lib目录下解决了问题,解决问题的过程中也了解到了很多新的东西,MachOView这个原项目早就不维护了,贴上一个M1版本可以用MachOView: https://github.com/obaby/machoview-obaby-branch
1 MasterCai OP 网上部分解决方案是用 xcode 解决的,我没有 Xcode,有没有别的方式可以解决 |
2 ai277014717 2021 年 8 月 4 日 把动态库放到对应路径中即可。 也可以看看 DYLD_FALLBACK_LIBRARY_PATH 能不能解决 |
3 Liang 2021 年 8 月 4 日 m1 mac mini,安装扩展的时候报了类似的错,搞了两天,没搞好,重装了 |
4 MasterCai OP @ai277014717 这个动态库是 @rpath 开头的,就是不知道具体的位置在哪呀,DYLD_FALLBACK_LIBRARY_PATH 这个是什么意思呢? @Liang 是系统重装了吗?最后解决了吗? |
5 ai277014717 2021 年 8 月 4 日 @MasterCai 使用 otool 可以查看 rpath 的值。DYLD_FALLBACK_LIBRARY_PATH 可以在查找动态库的时候添加一些兜底的目录。 |
6 MasterCai OP 修改 DYLD_FALLBACK_LIBRARY_PATH 这个方法在 terminal 里成功了,但是在 clion 里还是不行, 我用```otool -l /usr/local/lib/libpangolin.dylib```命令查看了一下,也没有找到什么有用信息,还是没能查看到“@rpath”的信息,唯一相关的片段如图,麻烦能不能说具体一点, |
7 MasterCai OP |
8 ai277014717 2021 年 8 月 4 日 @MasterCai 搜下 LC_RPATH 就是 rpath 的值 |
9 MasterCai OP 执行```otool -l /usr/local/lib/libpangolin.dylib```之后搜了一下,里面并没有 LC_RPATH 这个值 |
10 ai277014717 2021 年 8 月 4 日 @MasterCai 多研究下吧。可能哪里搞错了。MachOView 也可以查看 rpath 效果和 otool 应该一样 |
11 discrete 2021 年 8 月 5 日 重装一下 Command Line Tools 试试 |
12 shawnsh 2021 年 8 月 5 日 via Android otool -l 文件,看下 rpath 路径,然后用 otool -L 文件,看依赖的库,默认应该是 framework 那个目录 |
13 MasterCai OP @shawnsh 我用 otool -l 和 MachOView 都没看到“LC_RPATH”相关的字段,很奇怪,所以就不知道 rpath 具体是哪个路径 |