rpath を使用して、アプリのいくつかのライブラリにリンクしようとしています。一部の rpath は機能し、他の機能は機能しません。
リンクしている2つの動的ライブラリがlibgunrock
あり、libtd
両方とも異なるディレクトリにあります。
私のリンクは次のようになります。
gcc -L/Users/aterrel/workspace/apps/gunrock/build/lib/ -Wl,-rpath -Wl,/Users/aterrel/workspace/apps/gunrock/build/lib/ -lgunrock -L/Users/aterrel/workspace/apps/xdata/xlang/thunderdome -Wl,-rpath -Wl,/Users/aterrel/workspace/apps/xdata/xlang/thunderdome -ltd app-c-gunrock-bokeh.o -o app
ロード パスは正しいです。の関連部分otool -l app
:
Load command 16
cmd LC_RPATH
cmdsize 64
path /Users/aterrel/workspace/apps/gunrock/build/lib/ (offset 12)
Load command 17
cmd LC_RPATH
cmdsize 72
path /Users/aterrel/workspace/apps/xdata/xlang/thunderdome (offset 12)
Load command 18
まだエラーが発生します:
dyld: Library not loaded: libtd.dylib
Referenced from: /Users/aterrel/workspace/apps/xdata/xlang/webgraph/apps/c-gunrock-bokeh/./app
Reason: image not found
Trace/BPT trap: 5
アプリで実行すると正常に動作しDYLD_LIBRARY_PATH=/Users/aterrel/workspace/apps/xdata/xlang/thunderdome
ます。
libgunrock.dylib
なぜうまくロードされているのかわかりませんが、そうでlibtd.dylib
はありません。