「共有ライブラリ」の版間の差分

提供: MacWiki
移動: 案内検索
(ページの作成:「== はじめに == プログラミングにおいて、パフォーマンスに重要な要因に、起動時間とメモリ管理がある。静的ライブラリと動...」)
 
(ツール)
行7: 行7:
  
 
== ツール ==
 
== ツール ==
* otool
+
=== otool ===
* nm
+
object file displaying tool です。
  
 +
$ otool -L /path/to/libfoo.dylib
 +
とすると、ライブラリ名とリンクしている共有ライブラリが表示されます。
 +
 +
=== nm ===
 +
シンボルテーブルを表示します。
 +
 +
=== install_name_tool ===
 +
動的共有ライブラリとインストール名を変更します。
 +
 +
$ install_name_tool -id "/path/to/newname.dylib" /path/to/libfoo.dylib
 +
とすることで、その動的共有ライブラリのインストール名を変えることができます。
 +
 +
 +
$ install_name_tool -change "/path/to/libold.dylib"  "/path/to/libnew.dylib" /path/to/libfoo.dylib
 +
とすることで、リンクしている動的共有ライブラリを変えることができます。
  
 
== 外部リンク ==
 
== 外部リンク ==
 
* [https://developer.apple.com/library/mac/documentation/developertools/conceptual/dynamiclibraries/100-Articles/OverviewOfDynamicLibraries.html Overview of Dynamic Libraries
 
* [https://developer.apple.com/library/mac/documentation/developertools/conceptual/dynamiclibraries/100-Articles/OverviewOfDynamicLibraries.html Overview of Dynamic Libraries
 
* [http://fink.thetis.ig42.org/doc/packaging/policy.php?phpLang=ja#sharedlibs 共有ライブラリ]
 
* [http://fink.thetis.ig42.org/doc/packaging/policy.php?phpLang=ja#sharedlibs 共有ライブラリ]

2013年9月15日 (日) 11:05時点における版

はじめに

プログラミングにおいて、パフォーマンスに重要な要因に、起動時間とメモリ管理がある。静的ライブラリと動的ライブラリを比較すると、動的ライブラリの方が、起動時間やファイルサイズなどで利点が多く、広く使われている。


コンパイル

ライブラリを適切に指定しているにもかかわらずリンク時に symbol undefined エラーが出る場合、LDFLAGS に -undefined suppress -flat_namespace オプションを追加する。

ツール

otool

object file displaying tool です。

$ otool -L /path/to/libfoo.dylib

とすると、ライブラリ名とリンクしている共有ライブラリが表示されます。

nm

シンボルテーブルを表示します。

install_name_tool

動的共有ライブラリとインストール名を変更します。

$ install_name_tool -id "/path/to/newname.dylib" /path/to/libfoo.dylib

とすることで、その動的共有ライブラリのインストール名を変えることができます。


$ install_name_tool -change "/path/to/libold.dylib"  "/path/to/libnew.dylib" /path/to/libfoo.dylib

とすることで、リンクしている動的共有ライブラリを変えることができます。

外部リンク