WSL 上的 Arch:尽管已安装,但未找到 libQt5Core.so.5

Rip*_*dog 12 linux qt arch-linux windows-10 windows-subsystem-for-linux

我在 Arch Linux 论坛上被一些铁杆断电论坛 mods 击中,所以我在这里。

我正在尝试在 WSL 上运行 GUI 应用程序,例如 dolphin 或 kate。但是,libQt5Core.so.5尽管/usr/lib按照您的预期安装了它,但他们都找不到。这是一个终端成绩单:

/u/lib » DISPLAY=:0.0 dolphin
dolphin: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
/u/lib » pwd
/usr/lib
/u/lib » ls -la | grep Qt5Core
-rw-r--r-- 1 root root     1143 Aug  7 06:05 libQt5Core.prl
lrwxrwxrwx 1 root root       20 Aug  7 06:05 libQt5Core.so -> libQt5Core.so.5.11.1*
lrwxrwxrwx 1 root root       20 Aug  7 06:05 libQt5Core.so.5 -> libQt5Core.so.5.11.1*
lrwxrwxrwx 1 root root       20 Aug  7 06:05 libQt5Core.so.5.11 -> libQt5Core.so.5.11.1*
-rwxr-xr-x 1 root root  5234312 Aug  7 06:05 libQt5Core.so.5.11.1*
/u/lib » ldd `which dolphin`
        linux-vdso.so.1 (0x00007fffdb426000)
...
        libQt5Core.so.5 => not found
/u/lib » pacman -Qk qt5-base
qt5-base: 3546 total files, 0 missing files
Run Code Online (Sandbox Code Playgroud)

请注意,其他 GUI 应用程序工作正常 - 任何针对 GTK 编译的内容,包括 Firefox,都可以完美运行。我只需要设置$DISPLAY变量。正如您所期望的,不设置 var 无济于事。

有任何想法吗?谢谢!

Rip*_*dog 30

找到了一个修复:https : //github.com/kdudka/csmock/commit/96a4a759a7de39f8da109202f4fa14c76a0ae68f

或者简单地运行:

sudo strip --remove-section=.note.ABI-tag /usr/lib64/libQt5Core.so.5
Run Code Online (Sandbox Code Playgroud)

根本原因似乎与renameat2()WSL“内核”的缺乏有关。

更多信息:https : //github.com/Microsoft/WSL/issues/3023

感谢 Daniel B 让我开始做这件事!

  • 出于某种原因,我的 QT 库位于不同的位置,所以我需要运行:`sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 ` (9认同)