我很难理解@loader_path
文件中 a 所指的绝对路径。
user@local:~$ otool -L zlib.so
zlib.so:
@loader_path/../../libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.0.0)
我想知道系统在哪里寻找 libz.1.dylib。
从一些Mac 文档:
@loader_path/ 这个变量被替换为包含 mach-o 二进制文件的目录的路径,其中包含使用 @loader_path 的加载命令。因此,在每个二进制文件中,@loader_path 解析为不同的路径
我猜这意味着@loader_path 只是目标文件(zlib.so
)的路径,但这似乎不是真的。
是否有任何命令行实用程序可以将 @loader_path 解析为尝试打开库时使用的实际路径?