У Apple есть несколько способов поиска общих библиотек:
@executable_path
: относительно основного исполняемого файла
@loader_path
: относительно ссылающегося двоичного файла
@rpath
: относительно любого из списка путей.
@rpath
является самым последним дополнением, представленным в OS X 10.5.
Если, например, вы хотите иметь свой исполняемый файл в Contents/MacOS
и библиотеки в Contents/Libraries
, вы можете сделать следующее:
install_name_tool -id @rpath/Libraries/lib_this.dylib builddir/lib_this.dylib
и в исполняемом наборе верхнего уровня rpath
с:
install_name_tool -add_rpath @loader_path/.. myexecutable
и
install_name_tool -change builddir/lib_this.dylib @rpath/Libraries/lib_this.dylib myexecutable
Примечание: первый путь после -change
должен точно соответствовать тому, что в данный момент находится в двоичном файле.
Если вы потерялись, otool -l -v myexecutable
сообщит вам, какие именно команды загрузки в данный момент находятся в исполняемом файле.
См. man dyld
и man install_name_tool
для получения дополнительной информации.