Whonix and Qt5 applications

Hey, I need help making Qt5 applications run on Whonix using VirtualBox.

I’m trying to execute the latest pre built version of QtCreator Community found on qt-creator/qt-creator on GitHub, but it seems Whonix is missing some Qt libraries. Running this in my main production machine works perfectly fine without any additional tweaking.

When I try to run QtCreator binary I get this message:

./qtcreator: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29’ not found (required by /home/user/qtcreator/qtcreator-Linux-747779016/bin/…/lib/qtcreator/libUtils.so.4)

It says GLIBC_2.29 not found on /lib/x86_64-linux-gnu/libm.so.6, but I check it and libm.so.6 does exist in this directory, but it’s a symlink to libm-2.28.so in the same directory.

Yet, this is not the only error I get. When I build my Qt application from my main machine and then try to run it inside Whonix I get the error shown above. Although, when I build it directly inside Whonix and try to run it (it builds correctly) I get the error below:

qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb. Aborted (core dumped)

Also, I saw this is not a problem with Whonix itself. Trying the same thing on Tails gives me the same errors and installing Wireshark-Qt package from APT does work.

(I now realize maybe I’m asking in wrong forum lol)

Okay. I’ve figured it out.
I only need to create a symlink from /usr/lib/x86_64-linux-gnu/libxcb-util.so.1 to /usr/lib/x86_64-linux-gnu/libxcb-util.so.0.0.0

https://www.whonix.org/wiki/Free_Support_Principle applies.

If it’s only for you, then probably good enough. But for release or Open Source you’d probably want to figure out why this is required. Either there is another way which doesn’t require doing this or it’s an upstream bug.