我目前在 Docker 中使用 Fedora 29 来生成一些 RPM。主机在 Ubuntu 16.04 (LTS) 下,docker 使用该--privileged
标志启动。
由于 2/3 周管道被破坏,即使共享对象在这里,/usr/lib64/qt5/bin/lrelease
其他二进制文件qt5-linguist
也无法找到libQt5Core.so.5
。但最奇怪的来了:
[root@28ffba3f3995 /]# ldd /usr/lib64/qt5/bin/lrelease-qt5
linux-vdso.so.1 (0x00007ffce5b5d000)
libQt5Xml.so.5 => /lib64/libQt5Xml.so.5 (0x00007fbb0ac01000)
libQt5Core.so.5 => not found
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbb0abe0000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fbb0aa48000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbb0a8c4000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fbb0a8a9000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbb0a6e1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbb0acc9000)
libQt5Core.so.5 => not found
[root@28ffba3f3995 /]# ls -la /lib64/libQt5Core.so.5
lrwxrwxrwx 1 root root 20 Dec 21 20:08 /lib64/libQt5Core.so.5 -> libQt5Core.so.5.11.3
[root@28ffba3f3995 /]# ls -la /lib64/libQt5Xml.so.5
lrwxrwxrwx 1 root root 20 Dec 21 20:08 /lib64/libQt5Xml.so.5 -> libQt5Xml.so.5.11.3
[root@28ffba3f3995 /]# file /lib64/libQt5Core.so.5
/lib64/libQt5Core.so.5: symbolic link to libQt5Core.so.5.11.3
[root@28ffba3f3995 /]# file /lib64/libQt5Xml.so.5
/lib64/libQt5Xml.so.5: symbolic link to libQt5Xml.so.5.11.3
[root@28ffba3f3995 /]# LD_TRACE_LOADED_OBJECT=1 /lib64/ld-linux-x86-64.so.2 /lib64/libQt5Core.so.5
This is the QtCore library version Qt 5.11.3 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 8.2.1 20181215 (Red Hat 8.2.1-6))
Copyright (C) 2016 The Qt Company Ltd.
Contact: http://www.qt.io/licensing/
Installation prefix: /usr
Library path: lib64
Include path: include/qt5
Processor features: sse3 sse2[required] ssse3 fma cmpxchg16b sse4.1 sse4.2 movbe popcnt aes avx f16c rdrand bmi hle avx2 bmi2 rtm rdseed
然后再次:
# In strace lrelease I see:
openat(AT_FDCWD, "/lib64/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = 3
文件已读!
ldconfig
什么也不做。
请尝试以下操作:
strip -R .note.ABI-tag /lib64/libQt5Core.so.5.11.3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句