【发布时间】:2018-09-27 07:03:11
【问题描述】:
我正在检查一个 makefile,并看到使用的库是:
LIBS = -lcppunit -ldl
lcppunit 是单元测试库。那么ldl 是什么?
【问题讨论】:
-
man dlopen(dlclose, dlerror, dlsym, dladdr, dlvsym)
标签: c++ linux dynamic-library
我正在检查一个 makefile,并看到使用的库是:
LIBS = -lcppunit -ldl
lcppunit 是单元测试库。那么ldl 是什么?
【问题讨论】:
man dlopen (dlclose, dlerror, dlsym, dladdr, dlvsym)
标签: c++ linux dynamic-library
这是动态加载器的接口,它为客户端程序提供了执行诸如显式加载其他库、在其中查找符号等操作的能力。
大多数程序不需要显式地执行这些操作,因为链接器会在加载程序和库本身时执行正常使用共享库所需的操作。然而,聪明或试图探索和操纵动态链接系统及其数据的程序需要显式访问。一些功能与 Java 中的反射非常相似,但有很大的限制(例如仅适用于 动态 符号)
【讨论】:
libdl 是dynamic linking library。
【讨论】:
libdl 是在具有良好定义接口的插件架构中使用的动态链接库。至少我看到它是这样使用的。
【讨论】: