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 是一个很好的做法。
我调用从 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 是一个很好的做法。