カスタムプレフィックス( )でビルドおよびインストールされたブーストライブラリへの依存関係を使用して、ダイナミックライブラリを正常にビルドしました./b2 install --prefix=PREFIX
。ただし、otool -L
ライブラリで実行すると、次のような出力が得られます。
...
libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0)
libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0)
...
これは、他の依存関係とは異なり、これらのブースト ライブラリへのフル パスなしで提示されます。これにより、ライブラリがアプリによって読み込まれるときに実行時エラーが発生します。install_name_tool
この問題を手動で修正するために使用できることを知っています。ただし、理解しようとしているのは、ブーストライブラリでのみ発生し、ライブラリが依存する他の依存関係では発生しないのはなぜですか?
編集
build コマンドの例を挙げるように求められましたが、いつものように、「実際の」例はもう少し複雑です。私の場合、libA.dylib
ブーストに依存するライブラリがあります。それから、ブーストにもlibMy.dylib
依存する私のライブラリがあります。libA.dylib
この問題はconfigure
、単純なライブラリの存在チェックが実行されるステップで発生します ( に似たカスタム テスト プログラムAC_CHECK_LIB
)。libA.dylib
このチェックは、の可用性を証明するためにリンクされている小さなテスト プログラムをビルドしようとしlibA.dylib
ますが、ブースト ライブラリが見つからないというエラーが原因で失敗します。もちろん、otool -L libA.dylib
フルパスなしでブーストライブラリを提供するため、それらは見つかりません。