Encontre todas as bibliotecas de reforço:
$ 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)
e para cada um libboost_xxx.dylib
, faça:
$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile
e finalmente verifique usando otool
novamente:
$ 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
EDITAR Há um tempo atrás, escrevi um script python ( copy_dylibs.py
) para resolver todas essas coisas automaticamente ao criar um aplicativo. Ele empacotará todas as bibliotecas do /usr/local
ou /opt/local
no pacote de aplicativos e corrigirá as referências a essas bibliotecas a serem usadas @rpath
. Isso significa que você pode instalar facilmente uma biblioteca de terceiros usando o Homebrew e empacotá-las com a mesma facilidade.
Agora tornei este script público no github .