「OSXに関連したソフトウェアのTIPS」の版間の差分

提供: Eospedia
移動: 案内検索
(相対パスの設定の仕方:rpath)
 
(同じ利用者による、間の4版が非表示)
行1: 行1:
** 相対パスの設定の仕方:rpath
+
== 相対パスの設定の仕方:rpath ==
 
dylibのライブラリを相対パスとして探索できるようにするには,LD_PATH_LIBRARYと共に,各動的ライブラリを相対パスとしておくためには,install_name_toolを使って,LD_PATH_LIBRARYで利用できる様にしておく必要がある。
 
dylibのライブラリを相対パスとして探索できるようにするには,LD_PATH_LIBRARYと共に,各動的ライブラリを相対パスとしておくためには,install_name_toolを使って,LD_PATH_LIBRARYで利用できる様にしておく必要がある。
  
行14: 行14:
 
その意味は,-rpathで設定したディレクトリを探索する。
 
その意味は,-rpathで設定したディレクトリを探索する。
  
 +
参考:
 +
# [[@rpath]]
 +
# [[install_name_tool]]
 +
# [[otool]]
  
 
+
== ライブラリの依存関係の確認:otool ==
** ライブラリの依存関係の確認:otool
+
 
  $ otool -L xxxx
 
  $ otool -L xxxx
 
xxxxは,実行形式であり,その実行形式が必要とする動的ライブラリのリストを確認出来る。
 
xxxxは,実行形式であり,その実行形式が必要とする動的ライブラリのリストを確認出来る。
行27: 行30:
  
  
** [[lldb]]
+
== [[lldb]] ==

2020年3月17日 (火) 04:00時点における最新版

相対パスの設定の仕方:rpath

dylibのライブラリを相対パスとして探索できるようにするには,LD_PATH_LIBRARYと共に,各動的ライブラリを相対パスとしておくためには,install_name_toolを使って,LD_PATH_LIBRARYで利用できる様にしておく必要がある。

for i in `ls -1 *.dylib` ; do
    install_name_tool -id "@rpath/$i" $i
done


 動的ライブラリのパスをさがす場合,@rpathとして定義されている。リンク時にその場所を指定しておくことも出来て,そのほうが安定して動く。 コンパイル・リンク時に,下記を設定しておく。

-Wl,-rpath,/xxx

その意味は,-rpathで設定したディレクトリを探索する。

参考:

  1. @rpath
  2. install_name_tool
  3. otool

ライブラリの依存関係の確認:otool

$ otool -L xxxx

xxxxは,実行形式であり,その実行形式が必要とする動的ライブラリのリストを確認出来る。

$ otool -L yyyy.dylib

yyyyはライブラリを指定しており,それ自身が必要とする動的ライブラリのリストを確認出来る。

$ otool -D yyyy.dylib

yyyy.dylibのid nameを表示する


lldb