0

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?

CherryDT
  • 534

0 Answers0