У меня есть библиотека: libfoo.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
Как мне достичь цели, чтобы не указывать при компиляции исполняемого файла, где находится библиотека?
libfoo.dylib
с-headerpad_max_install_names
, чтобы обеспечить достаточно места для имен, которые вы пытаетесь добавить. Как толькоlibfoo.dylib
получит имя для установки,foo
сможет ссылаться на него независимо от местоположения программы. - person jww   schedule 06.09.2016