库文件是由ldconfig找到的,但不是由ldd找到的

德米特里·格里戈里耶夫(Dmitry Grigoryev)

我已经建立了OpenGL加速库(libGL和libGLU),并将其保存在特定目录下/usr/lib/mali我也有安装在中的OpenGL的软件实现/usr/lib/arm-linux-gnueabihf这两个目录添加到/etc/ld.so.conf/usr/lib/mali未来第一,使节目更喜欢从它的库。

ldconfig 查找所有库:

$ sudo ldconfig -v
/usr/lib/mali:
libGLU.so.1 -> libGLU.so.1
libGL.so.1.2.0 -> libGL.so.1
/usr/lib/arm-linux-gnueabihf:
libGL.so.1 -> libGL.so.1.5.08005
libGLU.so.1 -> libGLU.so.1.3.08005

怪异的部分是ldconfig创建了符号链接libGL.so.1.2.0,但没有作用libGLUldd输出更加古怪:

ldd `which glxgears`
libGLU.so.1 => /usr/lib/mali/libGLU.so.1 (0xb6e4a000)
libGL.so.1 => /usr/lib/arm-linux-gnueabihf/libGL.so.1 (0xb6bb5000)
libGL.so.1.2.0 => /usr/lib/mali/libGL.so.1.2.0 (0xb67f1000)

输出表明,该目录libGLU是从硬件加速目录中获取的,而libGL坚持使用软件实现。libGL.so.1.2.0也由于某种原因被加载。最后,当我运行时,将使用软件实现glxgears

谁能解释我发生了什么事?我该如何做才能使我的硬件加速库默认情况下加载,而不会从中删除或覆盖软件库/usr/lib/arm-linux-gnueabihf/(它们实际上是程序包依赖性)?

PS:当我添加/usr/lib/mali/时,硬件加速库可以正常工作LD_LIBRARY_PATH

德米特里·格里戈里耶夫(Dmitry Grigoryev)

问题确实出在我的Makefile设置中。检查库并objdump揭示了根本原因:

$ objdump -p libGL.so.1 |grep SONAME
SONAME               libGL.so.1.2.0

ldd显示了libGL.so.1libGL.so.1.2.0,因为第一个是glxgears由我导入的,第二个是由我导入的,而我的实现libGLU是针对的硬件加速版本构建的libGL,因此知道了它的名称libGL.so.1.2.0

解决的方法是使用来更改soname -soname,libGL.so.1

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Windows文件由cmd.exe找到,但不能由PowerShell找到

来自分类Dev

通过locate找到的Python.h,但不是由GCC找到

来自分类Dev

通过locate找到的Python.h,但不是由GCC找到

来自分类Dev

无法找到由ipython内核创建的json连接文件

来自分类Dev

获取由 apt purge 但不是由 apt remove 删除的文件列表的命令?

来自分类Dev

为什么某些工作包文件对ldd输出的某些库返回“未找到”?

来自分类Dev

如何找到由brew安装的vim?

来自分类Dev

未找到由字段引起的LibGDX SerializationException

来自分类Dev

如何找到由自己的类创建的对象?

来自分类Dev

ECLiPSe CLP:在ic库中由search / 6找到的子结果之间暂停

来自分类Dev

在哪里可以找到Linux中由Gitosis管理的存储库的位置

来自分类Dev

由LightBlue找到的设备,但没有由iOS CoreBluetooth找到的设备

来自分类Dev

由LightBlue找到的设备,但没有由iOS CoreBluetooth找到的设备

来自分类Dev

Eclipse + JNI:可以找到库,但不能找到方法

来自分类Dev

Bash脚本将操作应用于由find找到的每个文件

来自分类Dev

编辑由多次出现文本文件的特定字符串找到的特定行

来自分类Dev

找到具有相对路径但不是绝对路径的文件?(VBS)

来自分类Dev

ldd:找不到用于xl c编译二进制文件的库,但可以在AIX上找到gcc编译二进制文件的库

来自分类Dev

javac能够找到文件,但不能找到java命令

来自分类Dev

如果GCC仅找到静态库而不是动态库,它是否求助于静态链接找到的文件?

来自分类Dev

由cUrl引发的JSON格式错误,但不是Wget?

来自分类Dev

C#程序在调试模式下运行,但不是直接由可执行文件运行

来自分类Dev

ANSI转义序列^ [[K由较少的-R处理,但不是由大多数处理

来自分类Dev

如何找到由指针数组指向的元素的大小?

来自分类Dev

在由随机数填充的数组中找到最大的增量

来自分类Dev

SecurityContext用户未由EntityManager管理,“找到了新实体”

来自分类Dev

如何找到由指针数组指向的元素的大小?

来自分类Dev

水豚:单击由图标类找到的元素

来自分类Dev

丢失+找到的目录是否应该始终由root拥有?

Related 相关文章

  1. 1

    Windows文件由cmd.exe找到,但不能由PowerShell找到

  2. 2

    通过locate找到的Python.h,但不是由GCC找到

  3. 3

    通过locate找到的Python.h,但不是由GCC找到

  4. 4

    无法找到由ipython内核创建的json连接文件

  5. 5

    获取由 apt purge 但不是由 apt remove 删除的文件列表的命令?

  6. 6

    为什么某些工作包文件对ldd输出的某些库返回“未找到”?

  7. 7

    如何找到由brew安装的vim?

  8. 8

    未找到由字段引起的LibGDX SerializationException

  9. 9

    如何找到由自己的类创建的对象?

  10. 10

    ECLiPSe CLP:在ic库中由search / 6找到的子结果之间暂停

  11. 11

    在哪里可以找到Linux中由Gitosis管理的存储库的位置

  12. 12

    由LightBlue找到的设备,但没有由iOS CoreBluetooth找到的设备

  13. 13

    由LightBlue找到的设备,但没有由iOS CoreBluetooth找到的设备

  14. 14

    Eclipse + JNI:可以找到库,但不能找到方法

  15. 15

    Bash脚本将操作应用于由find找到的每个文件

  16. 16

    编辑由多次出现文本文件的特定字符串找到的特定行

  17. 17

    找到具有相对路径但不是绝对路径的文件?(VBS)

  18. 18

    ldd:找不到用于xl c编译二进制文件的库,但可以在AIX上找到gcc编译二进制文件的库

  19. 19

    javac能够找到文件,但不能找到java命令

  20. 20

    如果GCC仅找到静态库而不是动态库,它是否求助于静态链接找到的文件?

  21. 21

    由cUrl引发的JSON格式错误,但不是Wget?

  22. 22

    C#程序在调试模式下运行,但不是直接由可执行文件运行

  23. 23

    ANSI转义序列^ [[K由较少的-R处理,但不是由大多数处理

  24. 24

    如何找到由指针数组指向的元素的大小?

  25. 25

    在由随机数填充的数组中找到最大的增量

  26. 26

    SecurityContext用户未由EntityManager管理,“找到了新实体”

  27. 27

    如何找到由指针数组指向的元素的大小?

  28. 28

    水豚:单击由图标类找到的元素

  29. 29

    丢失+找到的目录是否应该始终由root拥有?

热门标签

归档