首页 > 解决方案 > 部署在另一台机器上时正在修改 Macho 运行路径

问题描述

我在 dylib 文件中设置了 libcrpyto 的搜索路径,以便在以下路径中查找 libcrypto.1.1.dylib:

otool -L mylib.dylib
-->
...
@rpath/libcrypto.1.1.dylib
...

但是,当我将目标部署到我曾经构建过 libcrypto 的某台机器上时,搜索路径会自动从 rpath 替换为我之前构建目标的位置。

otool -L mylib.dylib
-->
...
/Users/me/Developer/staging/fakeroot/lib/libcrypto.1.1.dylib (compatibility version 1.1.0, current version 1.1.0)
...

该文件当然保持不变(通过匹配文件内容的 md5 来检查它)

我查看了是否有任何环境变量可以替换@rpath,/Users/me/Developer/staging/fakeroot/lib/但没有找到任何包含曾经使用过的路径的变量。

也许这是在文件中定义的东西?但是我只在这台特定的机器上得到这条路径的原因是什么?

标签: macoslinkerdylibrunpath

解决方案


推荐阅读