对于使用该库的任何程序,ldconfig 可以找到库,但 ldd 找不到该库

对于使用该库的任何程序,ldconfig 可以找到库,但 ldd 找不到该库

运行 arch linux,我安装了 qt5-base,它提供了 libQt5Core.so.5。

运行 ldconfig 查找共享对象:

$ sudo ldconfig -v | grep libQt5Core
libQt5Core.so.5 -> libQt5Core.so.5.10.0

但是当我在需要 libQt5Core.so 的程序上运行 ldd 时,找不到它。尝试启动这些程序失败:

$ ldd $(which keepassx) | grep libQt5Core
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found

$ ldd /usr/lib/notepadqq/notepadqq-bin | grep libQt5Core
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found
libQt5Core.so.5 => not found

/usr/lib/libQt5Core.so是一个符号链接,libQt5Core.so.5.10.0其输出如下file

/usr/lib/libQt5Core.so.5.10.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=4da280cdc46f7f0e4f257556e2ecc6b2eb31afa3, for GNU/Linux 3.17.0, stripped

keepassx 的文件输出为:

 $ file $(which keepassx) /usr/lib/notepadqq/notepadqq-bin: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (GNU/Linux), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=8fafc88639032c270fd9d4c153720dc33db44823, stripped

我尝试过重新安装qt5-core和进行完整的系统升级,但都没有帮助。如何修复我的系统以便运行需要 libQt5Core.so 的程序?

答案1

事实证明,这是 arch linux arm 存储库中 qt5-base 的打包问题:https://archlinuxarm.org/forum/viewtopic.php?f=15&t=12396

相关内容