On Ubuntu 20.04 on WSL1, I have a weird problem:
uic can't run because of this error:
/usr/lib/qt5/bin/uic: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
ldd also thinks so:
$ ldd /usr/lib/qt5/bin/uic
linux-vdso.so.1 (0x00007fffe6618000)
libQt5Core.so.5 => not found
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd47f7f0000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd47f5f0000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd47f4a1000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd47fb24000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd47f470000)
However, there is a file /lib/x86_64-linux-gnu/libQt5Core.so.5 (also as /usr/lib/x86_64-linux-gnu/libQt5Core.so.5) symlinked to libQt5Core.so.5.12.8, and that file is valid:
$ file $(readlink -f /lib/x86_64-linux-gnu/libQt5Core.so.5)
/usr/lib/x86_64-linux-gnu/libQt5Core.so.5.12.8: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=99da89189f9c3bd4633c96c89dcb4f05bc9eb12a, for GNU/Linux 3.17.0, stripped
$ ldd $(readlink -f /lib/x86_64-linux-gnu/libQt5Core.so.5)
linux-vdso.so.1 (0x00007fffd3f62000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9961b0d000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9961af0000)
libicui18n.so.66 => /lib/x86_64-linux-gnu/libicui18n.so.66 (0x00007f99617f0000)
libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f9961600000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f99615f0000)
libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f9961560000)
libdouble-conversion.so.3 => /lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007f9961530000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f9961400000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9961190000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9961041000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9961010000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9960e10000)
/lib64/ld-linux-x86-64.so.2 (0x00007f996209e000)
libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f995f330000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f995f2b0000)
It also matches the architecture of uic:
$ file /usr/lib/qt5/bin/uic
/usr/lib/qt5/bin/uic: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d332e7df12e5aa78bd257d113acb88cad1eec0c0, for GNU/Linux 3.2.0, stripped
Moreover, strace shows that the loader actually opens the file and reads its first bytes but then decides to close it again and continue looking!
stat("/lib/x86_64-linux-gnu/x86_64", 0x7fffd94a3290) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200C\v\0\0\0\0\0"..., 832) = 832
close(3) = 0
stat("/lib/x86_64-linux-gnu", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/tls/x86_64/x86_64/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/lib/x86_64-linux-gnu/tls/x86_64/x86_64", 0x7fffd94a3290) = -1 ENOENT (No such file or directory)
...
I also tried LD_DEBUG=all to see if it logs any reason for rejecting the file, but there none - without the strace it would have looked as if the file wasn't even found, but we know already that's not true:
9912: file=libQt5Core.so.5 [0]; needed by /usr/lib/qt5/bin/uic [0]
9912: find library=libQt5Core.so.5 [0]; searching
9912: search cache=/etc/ld.so.cache
9912: search path=/lib/x86_64-linux-gnu/tls/x86_64/x86_64:/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls/x86_64:/lib/x86_64-linux-gnu/tls:/lib/x86_64-linux-gnu/x86_64/x86_64:/lib/x86_64-linux-gnu/x86_64:/lib/x86_64-linux-gnu/x86_64:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/tls/x86_64/x86_64:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-gnu/tls/x86_64:/usr/lib/x86_64-linux-gnu/tls:/usr/lib/x86_64-linux-gnu/x86_64/x86_64:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu/x86_64:/usr/lib/x86_64-linux-gnu:/lib/tls/x86_64/x86_64:/lib/tls/x86_64:/lib/tls/x86_64:/lib/tls:/lib/x86_64/x86_64:/lib/x86_64:/lib/x86_64:/lib:/usr/lib/tls/x86_64/x86_64:/usr/lib/tls/x86_64:/usr/lib/tls/x86_64:/usr/lib/tls:/usr/lib/x86_64/x86_64:/usr/lib/x86_64:/usr/lib/x86_64:/usr/lib (system search path)
9912: trying file=/lib/x86_64-linux-gnu/tls/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/tls/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/tls/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/tls/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64-linux-gnu/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/tls/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/tls/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64-linux-gnu/libQt5Core.so.5
9912: trying file=/lib/tls/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/lib/tls/x86_64/libQt5Core.so.5
9912: trying file=/lib/tls/x86_64/libQt5Core.so.5
9912: trying file=/lib/tls/libQt5Core.so.5
9912: trying file=/lib/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64/libQt5Core.so.5
9912: trying file=/lib/x86_64/libQt5Core.so.5
9912: trying file=/lib/libQt5Core.so.5
9912: trying file=/usr/lib/tls/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/tls/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/tls/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/tls/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/x86_64/libQt5Core.so.5
9912: trying file=/usr/lib/libQt5Core.so.5
9912:
/usr/lib/qt5/bin/uic: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
I already reinstalled the file using sudo apt-get install --reinstall libqt5core5a but that didn't change anything.
The MD5 sum of the file is 3915703aa2f23b7f5d7ec2577399ffdf.
Do you have any ideas what could be wrong or how to further debug this issue?