运行 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