「OSXに関連したソフトウェアのTIPS」の版間の差分
提供: Eospedia
(ページの作成:「* 相対パスの設定の仕方:rpath 動的ライブラリのパスをさがす場合,@rpathとして定義されている。リンク時にその場所を指定...」) |
(→相対パスの設定の仕方:rpath) |
||
| (同じ利用者による、間の6版が非表示) | |||
| 行1: | 行1: | ||
| − | + | == 相対パスの設定の仕方: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として定義されている。リンク時にその場所を指定しておくことも出来て,そのほうが安定して動く。 | 動的ライブラリのパスをさがす場合,@rpathとして定義されている。リンク時にその場所を指定しておくことも出来て,そのほうが安定して動く。 | ||
コンパイル・リンク時に,下記を設定しておく。 | コンパイル・リンク時に,下記を設定しておく。 | ||
| 行7: | 行14: | ||
その意味は,-rpathで設定したディレクトリを探索する。 | その意味は,-rpathで設定したディレクトリを探索する。 | ||
| + | 参考: | ||
| + | # [[@rpath]] | ||
| + | # [[install_name_tool]] | ||
| + | # [[otool]] | ||
| − | + | == ライブラリの依存関係の確認:otool == | |
| − | + | ||
$ otool -L xxxx | $ otool -L xxxx | ||
xxxxは,実行形式であり,その実行形式が必要とする動的ライブラリのリストを確認出来る。 | xxxxは,実行形式であり,その実行形式が必要とする動的ライブラリのリストを確認出来る。 | ||
| 行20: | 行30: | ||
| − | + | == [[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で設定したディレクトリを探索する。
参考:
ライブラリの依存関係の確認:otool
$ otool -L xxxx
xxxxは,実行形式であり,その実行形式が必要とする動的ライブラリのリストを確認出来る。
$ otool -L yyyy.dylib
yyyyはライブラリを指定しており,それ自身が必要とする動的ライブラリのリストを確認出来る。
$ otool -D yyyy.dylib
yyyy.dylibのid nameを表示する