Знайдіть усі прискорені бібліотеки:
$ otool -L exefile
exefile:
@executable_path/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
і для кожного libboost_xxx.dylib
зробіть:
$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile
і, нарешті, otool
ще раз перевірити використання :
$ otool -L exefile
exefile:
/opt/local/lib/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
Manpages: otool
install_name_tool
РЕДАКТУ Колись назад, я написав сценарій python ( copy_dylibs.py
) для автоматичного опрацювання всіх цих матеріалів під час створення програми. Він упакує всі бібліотеки з пакету додатків /usr/local
або /opt/local
в нього та виправить посилання на ті бібліотеки, які слід використовувати @rpath
. Це означає, що ви можете легко встановити сторонні бібліотеки за допомогою Homebrew і запакувати їх так само легко.
Зараз я оприлюднив цей сценарій на github .