高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1180
Where is dlopen?


Q: Mac OS X のヘッダの中に dlopen がないようです。ライブラリとプラグインに動的にリンクするには、どのようにすればよいのでしょうか?

A: Mac OS X は dlopen を実装していませんが、動的リンクの選択肢は多数提供しています。

  • Cocoa プログラマ向けには NSBundle を提供しています。

  • Core Foundation は、Mac OS X のライブラリとプラグインに動的にリンクするための 2 つの仕組みを提供しています(CFBundle と、その上の層を形成する CFPlugIn)。

  • Darwin レベルで作業している場合は、動的リンカ (dyld) API を直接使用できます。dyld の詳細については、「ターミナル」で "man 3 dyld"、"man 1 dyld"、"man 3 NSModule" と入力してください。

  • dlcompat というサードパーティライブラリがあります。これは、dlopen やその他の同様の機能との一定の互換性を提供しています。このライブラリにはソースも含まれているため、dyld に対して dlopen をどのように実装しているかについても見ることができます。他のすべてのサードパーティ製ライブラリと同様に、dlcompat はアップルのサポート対象ではありません。


[2002 年 8 月 19 日]