dlopen 是否需要一个独立的库?

Does dlopen require a lib to be self-contained?

我调用从 dlopen("libxyz.so", RTLD_NOW) 获得的函数 f1。我想知道 f1 是否在内部依赖于 libxyz.so 之外的符号,并且运行时链接器包含这些符号的额外库是 "searchable",我的应用程序可以运行吗?或者,是否要求 dlopen 的库(在本例中为 libxyz.so)必须是独立的?

is it a requirement that the dlopen'ed lib (libxyz.so in this case) has to be self-contained?

没有这样的要求。

但是,如果 libxyz.so 不是独立的,那么它可能在一个应用程序中工作(发生 到 link 在所有其他需要的库中libxyz.so 工作),但在另一个失败。因此,确保 libxyz.so 本身是针对它需要的所有其他库 linked 是一个很好的做法。