如何在不加载依赖库的情况下加载共享库?

弗雷德:

假设我有一个图书馆libfoo.so.1,该图书馆取决于(根据lddlibbar.so.1但是,libbar.so.1目前不可用。我的应用程序需要调用一个libfoo.so.1根本不需要的函数libbar.so.1

有没有一种方法可以加载libfoo.so.1,解析功能符号然后调用它而不必libbar.so.1满足依赖关系?这是“我知道我在做什么,就让我已经在做”的情况。我尝试了RTLD_LAZY标志,但它仍尝试libbar.so.1加载符号之前加载


编辑

这是确切的情况。

我们有3位玩家:

  • libbar.so.1,位于路径不在LD_LIBRARY_PATH或中的共享库ldconfig,并且所有依赖项都已解决
  • libfoo.so.1,共享库,与共享库位于不同的目录libbar,但是取决于libbar在运行时,libfoo将知道在哪里定位libbar
  • App,一个二进制应用程序,需要libfoo在运行时的某个时刻加载

App不知道在哪里找到libbar,但是libfoo知道。我要完成的工作是拥有一个init函数,libfoo函数只需将App当前的工作目录更改libbar为位置即可最终解决所有依赖关系并使每个人高兴。

libfoo最终需要在中调用东西libbar,只是不需要在此init函数中。我认为创建存根不起作用,因为符号最终将需要解析为实际功能。

亚当·古德(Adam Goode):

好的,即使使用,变量仍然可以解析RTLD_LAZY,因此通常您确实需要链接所有库。似乎您应该创建一个libbar.so.1没有功能且可由链接程序找到的存根

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不加载整个文件的情况下从XLS文件获取工作表名称?

如何在不加载Java类的情况下检查它?

如何在不加载MVC的情况下更新部分数据

如何在不加载iOS屏幕的情况下拍摄ViewController的快照?

swift:如何在不使用UIImagePickerController的情况下从照片库加载照片?

如何在不增加对库的依赖的情况下增加与库结构的兼容性?

如何在不加载整个文件的情况下读取前n行?

默认情况下,在pry中加载了哪些库?

如何在不加载区域的情况下将LocalDateTime转换为UTC并返回?

Requirejs不加载库

在“活动”之间导航时,如何在不加载数据的情况下保留数据

默认情况下如何在不加载片段的情况下使用导航图?

如何在不加载软件包的情况下使用ggplot2函数?

如何在不使用外部库的情况下加载到C ++ 8位位图图像?

如何在不加载完整内容的情况下获取请求的响应类型

如何在不加载UIImage的情况下获得图像方向?

如何在不加载图像的情况下获取图像尺寸

如何在不重新加载网页的情况下查询数据库?

django如何在不加载的情况下更新模板

如何在不加载的情况下使用foreach库

如何在不加载父级Set集合的情况下持久化Hibernate子实体

如何在不加载整个文件的情况下将标题行添加到 CSV?

如何在不加载整个网页的情况下执行特定的 js 请求?

如何在不加载页面的情况下进行存储和目录列表

如何在不加载所有元素的情况下搜索特定元素的 XML 文件?

如何在不加载关联模型的情况下检查 has_one 是否存在

如何在不加载整个 json 文件的情况下提取键值

如何在不从reactjs中的firebase数据库重新加载页面的情况下获取数据

如何在不更改原始数据库的情况下使用 SQL 更改已加载表的列名?