У меня есть библиотека: libfoo.dylib. Проблема проиллюстрирована в командах:Как я могу указать rpath в dylib?
$ install_name_tool -id "@rpath/libfoo.dylib" libfoo.dylib $ install_name_tool -add_rpath "@executable_path/" libfoo.dylib $ gcc -o foo foo.c -lfoo $ ./foo #<==== I want this to work dyld: Library not loaded: @rpath/libfoo.dylib Referenced from: ~/./foo Reason: image not found $ install_name_tool -add_rpath "@executable_path/" foo #<=== I dont want to have to specify here where to look for the library $ ./foo Hello World
Как достичь цели, не имея, чтобы указать на исполняемый компиляции, где находится библиотека?
I * think * вам нужно скомпилировать и связать 'libfoo.dylib' с' -headerpad_max_install_names', чтобы убедиться, что есть достаточно места для имен, которые вы пытаетесь добавить. Если 'libfoo.dylib' имеет свое имя для установки, то' foo' сможет ссылаться на него независимо от местоположения программы. – jww