Мне трудно понять абсолютный путь, на который ссылается @loader_path
в файле.
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 в фактический путь, который используется при попытке открыть библиотеку?