Retrouvez toutes les librairies boost:
$ 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)
et pour chacun libboost_xxx.dylib
, faites:
$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile
et enfin vérifier à otool
nouveau en utilisant :
$ 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)
Pages de manuel: otool
install_name_tool
EDIT Il y a quelque temps, j'ai écrit un script python ( copy_dylibs.py
) pour résoudre tout cela automatiquement lors de la construction d'une application. Il regroupera toutes les bibliothèques à partir de /usr/local
ou /opt/local
dans le bundle d'application et corrigera les références à ces bibliothèques à utiliser @rpath
. Cela signifie que vous pouvez facilement installer une bibliothèque tierce en utilisant Homebrew et les empaqueter tout aussi facilement.
J'ai maintenant rendu ce script public sur github .