web-dev-qa-db-ja.com

gccでのライブラリdlの意味

Makefileをチェックしていますが、使用されているライブラリは次のとおりです。

LIBS = -lcppunit -ldl

lcppunitはユニットテストライブラリです。では、ldlとは何ですか?

17
Dzung Nguyen
18
Carl Norum

これはダイナミックローダーへのインターフェースであり、クライアントプログラムに、他のライブラリを明示的にロードしたり、シンボルをルックアップしたりする機能を提供します。

リンカは、プログラムとライブラリ自体をロードしながら共有ライブラリの通常の使用を可能にするために必要なことを行うため、ほとんどのプログラムはそのようなことを明示的に行う必要はありません。ただし、賢いプログラム、またはダイナミックリンクシステムとそのデータを探索および操作しようとするプログラムには、明示的なアクセスが必要です。一部の機能は、Javaでのリフレクションとはかなり似ていますが、大きな制限があります(動的シンボルにのみ適用するなど)。

23
Chris Stratton

libdlは、明確に定義されたインターフェイスを備えたプラグインアーキテクチャで使用されるダイナミックリンクライブラリです。少なくともそれは私がそれが使われるのを見た方法です。

2
Jesus Ramos