メモ置き場

動的リンク周りのメモ

gccでのrpathの指定

  • -Wl,-rpath,'${path}'
    • -Wl,に続いてリンカに渡すオプションを指定する
    • -rpathオプションでディレクトリを指定する

リンク先のライブラリの解決順序

  1. 実行バイナリのDynamic sectionのDT_RPATH (非推奨)
    • DT_RUNPATHが存在しない場合
  2. 環境変数LD_LIBRARY_PATH
  3. 実行バイナリのDynamic sectionのDT_RUNPATH
  4. /etc/ld.so.cache
  5. /lib, /usr/lib

実行バイナリのDynamic sectionの確認

$ readelf -d ./a.out

動的リンクされた共有ライブラリの確認

$ ldd ./a.out

参考