3

ソースから cyrus sasl2 ライブラリを構築しています。ライブラリは /usr/local/lib にインストールされ、ヘッダーは /usr/local/include/sasl にインストールされます。これは適切です。

ただし、それらを使用しようとするアプリを実行すると、次のようになります。

dyld: Library not loaded: /libsasl2.dylib
  Referenced from: /usr/sbin/postdrop
  Reason: image not found
Trace/BPT trap: 5

ライブラリで otool -L を実行すると、不適切な相対パスが表示されます。

libsasl2.dylib:
  /libsasl2.dylib (compatibility version 3.0.0, current version 3.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
  /usr/lib/libresolv.9.dylib (compatibility version 1.0.0, current version 1.0.0)

正しい rpath がエンコードされるように make がライブラリをコンパイルする方法を変更するにはどうすればよいですか? ライブラリでそれを変更するために install_name_tool について読みましたが、正しいパス '/usr/local/lib/libsasl2.dylib' が現在エンコードされているパスよりも長いため、'-change' を使用してもうまくいかないようです。どういうわけかライブラリをビルドするときにそれを設定できるはずではありませんか?

ありがとう。

4

1 に答える 1