すべての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)
それぞれに対して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)
マンページ: otool
install_name_tool
編集しばらく前にcopy_dylibs.py
、アプリを構築するときにこれらすべてを自動的に処理するpythonスクリプト()を書きました。それから、すべてのライブラリをパッケージ化します/usr/local
または/opt/local
使用するために、これらのライブラリにアプリケーションバンドルと修正参照に@rpath
。つまり、Homebrewを使用してサードパーティのライブラリを簡単にインストールし、パッケージ化するのも同じくらい簡単です。
このスクリプトをgithubで公開しました。