1

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はありません。

4

0 に答える 0