11

カスタムプレフィックス( )でビルドおよびインストールされたブーストライブラリへの依存関係を使用して、ダイナミックライブラリを正常にビルドしました./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フルパスなしでブーストライブラリを提供するため、それらは見つかりません。

4

1 に答える 1