Libraries must be deleted for Qt5 apps to work on Ubuntu 20.04
-
I'm an end user (NOT a Qt Programmer) on Ubuntu 20.04LTS and I'm having the strangest issue.
Here's what I know:Qt5 based apps refuse to open from the GUI.
When attempting to open a Qt5 app from CLI, i see there are issues with the followings files:/usr/local/lib/libQt5Xml.so.5 /usr/local/lib/libQt5Gui.so.5 /usr/local/lib/libQt5Core.so.5 /usr/local/lib/libQt5Concurrent.so.5 /usr/local/lib/libQt5Widgets.so.5
Like a total fool, I didn't save the error but I believe it was "Undefined symbol" for each of the files in that list.
Basically, if I $ sudo rm all those .so.5 libs then Qt5 apps once again will open.
This issue is somehow related to installing apps from Ubuntu Software app but I recently installed via apt ppa and that seemed to recreate the listed libraries as well. Essentially, everything is working until installing a new app. This somehow causes the libraries to be recreated and that is the problem.
These are the libraries that seem to work correctly:
libmpg123.so.0 libQt5Core.so.5.3.2 libQt5Widgets.so.5.3.2 libQt5Concurrent.so.5.3.2 libQt5Gui.so.5.3.2 libQt5Xml.so.5.3.2
There is also this directory within /usr/local/lib/
python3.8
What is going on here?
Any help would be greatly appreciated. -
@Strawberrydit
I use Ubuntu 20.04 and never have any problems like this.Most important is where you get your Qt5 (I wouldn't touch Qt6 yet) from. I only fetch existing modules released with 20.04 via
apt get
, from default repos. I don't use Ubuntu Software App, nor snaps. Once you start using specific ppas, or still more scary build Qt from source yourself, you are likely to get into multiple-version-hell: it can be done but takes some management. I don't know what your "installing apps from Ubuntu Software" does in this area.Right at the end you mention Python. If you are installing PyQt5 or PySide2 they may come with their own virtual environments which include their own Qt. But then they should not affect anything in
/usr/local
.The
libQt...
s you say "work correctly" all look like they are for Qt 5.3? That is a very old version. Ubuntu 20.04's Qt should be at Qt 5.12.8. -
@Strawberrydit said in Libraries must be deleted for Qt5 apps to work on Ubuntu 20.04:
Qt5 based apps refuse to open from the GUI.
When attempting to open a Qt5 app from CLI, i see there are issues with the followings files:/usr/local/lib/libQt5Xml.so.5 /usr/local/lib/libQt5Gui.so.5 /usr/local/lib/libQt5Core.so.5 /usr/local/lib/libQt5Concurrent.so.5 /usr/local/lib/libQt5Widgets.so.5
Like a total fool, I didn't save the error but I believe it was "Undefined symbol" for each of the files in that list.
Basically, if I $ sudo rm all those .so.5 libs then Qt5 apps once again will open.
In a nutshell: You have/had multiple versions of Qt in your system. Your app loaded the wrong version so it couldn't run. When you deleted the wrong version, the app can no longer load the wrong version so it ended up loading the right version and ran fine.
I don't have details on your app or how you installed Qt, so I can only give general info. But the gist is this: You make somehow make sure that your app loads the correct version all the time.
You can see which version is being loaded by using
ldd
./usr/local/lib/
If something is in
/usr/local/
then it probably wasn't installed via the official Ubuntu channels. That means it probably wasn't tested for potential conflicts with official Ubuntu libraries/apps. -
@JonB yeah, I have been acquiring apps from Ubuntu Software App (That's what I was referring to) alongside
$ apt install
I definitely have not been building Qt from source. I also have not installed PyQt5 or PySide2 unless they managed to be installed as a dependency - I would think unlikely but i imagine its possible.
How would you update Qt5 to 5.12.8?
I found this command around but I don't know if its a good idea:
sudo apt install qt5-default
Appreciate your help.
-
@Strawberrydit said in Libraries must be deleted for Qt5 apps to work on Ubuntu 20.04:
sudo apt install qt5-default
Yes, that is the right command to install the Qt5 released with your OS version. You may need more packages than that, I can't recall, Google around. (From a shell you can also type
apt install qt5
and then press Tab a couple of times to see what all the possible matches are, to give you a hint.) I would start by uninstalling everything Qt you have --- your own, or whatever other applications you have installed which seem to use Qt and have installed it --- and see how you go. -
@JKSH I agree there appears to be a conflict, although I don't know how to sort it out. Its not just one app being effected, its seemingly anything that is based on Qt5 - None of these are things I've written myself, I'm just a user.
Where is Qt supposed to be installing these libraries normally?
Are there supposed to be any of these files in /usr/local/lib/ ?
How are they just reappearing? What could trigger this behavior?
$ ldd -v libQt5Concurrent.so.5
This produced a HUGE amount of output. I can't say I fully understand but it looks like its still linked into use by the system. Note, this is one of the files that needed to be deleted for any Qt5 app to successfully boot. I saved them in a backup directory when I was figuring this out.
$ ldd -v libQt5Concurrent.so.5 linux-vdso.so.1 (0x00007ffcd85e8000) libQt5Core.so.5 => /lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f729daa0000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f729da7d000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f729da72000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f729da6c000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f729d88a000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f729d86d000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f729d71e000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f729d52c000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f729d510000) libicui18n.so.66 => /lib/x86_64-linux-gnu/libicui18n.so.66 (0x00007f729d211000) libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007f729d02b000) libpcre2-16.so.0 => /lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007f729cfa6000) libdouble-conversion.so.3 => /lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007f729cf90000) libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f729ce67000) /lib64/ld-linux-x86-64.so.2 (0x00007f729e209000) libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007f729b3a6000) libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f729b333000) Version information: ./libQt5Concurrent.so.5: librt.so.1 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/librt.so.1 libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libstdc++.so.6 (CXXABI_1.3) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /lib/x86_64-linux-gnu/libstdc++.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libQt5Core.so.5: libgcc_s.so.1 (GCC_3.4) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libm.so.6 (GLIBC_2.29) => /lib/x86_64-linux-gnu/libm.so.6 libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6 libpthread.so.0 (GLIBC_2.3.3) => /lib/x86_64-linux-gnu/libpthread.so.0 libpthread.so.0 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libpthread.so.0 libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0 libc.so.6 (GLIBC_2.25) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.9) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.28) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.6) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libdl.so.2 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libdl.so.2 libstdc++.so.6 (GLIBCXX_3.4.14) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3.8) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.21) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3.3) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3.2) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3.9) => /lib/x86_64-linux-gnu/libstdc++.so.6 /lib/x86_64-linux-gnu/libpthread.so.0: ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2 ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/librt.so.1: libpthread.so.0 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libpthread.so.0 libpthread.so.0 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libpthread.so.0 libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libdl.so.2: ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2 libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libstdc++.so.6: libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6 ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libgcc_s.so.1 (GCC_4.2.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1 (GCC_3.4) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1 (GCC_3.3) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.6) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.18) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.16) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.2) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libgcc_s.so.1: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libm.so.6: ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_PRIVATE) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libc.so.6: ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2 /lib/x86_64-linux-gnu/libz.so.1: libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libicui18n.so.66: libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libstdc++.so.6 (CXXABI_1.3.8) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /lib/x86_64-linux-gnu/libstdc++.so.6 libm.so.6 (GLIBC_2.29) => /lib/x86_64-linux-gnu/libm.so.6 libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6 /lib/x86_64-linux-gnu/libicuuc.so.66: libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2 libm.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libm.so.6 libm.so.6 (GLIBC_2.29) => /lib/x86_64-linux-gnu/libm.so.6 libdl.so.2 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libdl.so.2 libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0 libstdc++.so.6 (CXXABI_1.3.8) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (CXXABI_1.3) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.11) => /lib/x86_64-linux-gnu/libstdc++.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libpcre2-16.so.0: libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libdouble-conversion.so.3: libgcc_s.so.1 (GCC_3.0) => /lib/x86_64-linux-gnu/libgcc_s.so.1 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libstdc++.so.6 (CXXABI_1.3) => /lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4) => /lib/x86_64-linux-gnu/libstdc++.so.6 /lib/x86_64-linux-gnu/libglib-2.0.so.0: libpthread.so.0 (GLIBC_2.12) => /lib/x86_64-linux-gnu/libpthread.so.0 libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0 libc.so.6 (GLIBC_2.9) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.28) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.3) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.16) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.8) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.15) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.10) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.17) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.7) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6 /lib/x86_64-linux-gnu/libpcre.so.3: libpthread.so.0 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libpthread.so.0 libc.so.6 (GLIBC_2.14) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.4) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.2.5) => /lib/x86_64-linux-gnu/libc.so.6 libc.so.6 (GLIBC_2.3) => /lib/x86_64-linux-gnu/libc.so.6
Thanks for your help
-
@JonB Yuck but it sound like it would be effective. Is there some way to get a list of Qt5 apps on a system? I discovered this by total chance and frankly I don't know how to tell a Qt app from any other.
I ran the default install:
$ sudo apt install qt5-default The following packages were automatically installed and are no longer required: libllvm11 libmlt++3 libmlt-data libmlt6 melt shim Use 'sudo apt autoremove' to remove them. The following additional packages will be installed: libegl-dev libgl-dev libglu1-mesa-dev libglx-dev libpthread-stubs0-dev libqt5opengl5-dev libvulkan-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxext-dev qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser x11proto-core-dev x11proto-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev Suggested packages: libx11-doc libxcb-doc libxext-doc default-libmysqlclient-dev firebird-dev libpq-dev libsqlite3-dev unixodbc-dev The following NEW packages will be installed: libegl-dev libgl-dev libglu1-mesa-dev libglx-dev libpthread-stubs0-dev libqt5opengl5-dev libvulkan-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxext-dev qt5-default qt5-qmake qt5-qmake-bin qtbase5-dev qtbase5-dev-tools qtchooser x11proto-core-dev x11proto-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev 0 upgraded, 23 newly installed, 0 to remove and 3 not upgraded. Need to get 5,309 kB of archives.
All the files still remain in /usr/local/lib/ (I haven't deleted them) but it appears to indeed have installed Qt 5.12.8 by the apt verbose output. Where does the correct version belong?
Also, as a new user, I'm being limited to 10 minute intervals for posts so please bear with me.
-
@Strawberrydit said in Libraries must be deleted for Qt5 apps to work on Ubuntu 20.04:
but it appears to indeed have installed Qt 5.12.8 by the apt verbose output. Where does the correct version belong?
I don't know what you mean. Whatever/wherever the
apt install
installs is correct. -
I'm trying to figure out if
/usr/local/lib/
is where the .so files are supposed to be or not. Why do these files keep reappearing and how does one prevent it?I just tried to run stacer and it is again not working. When running from the terminal, I get this:
stacer: /usr/local/lib/libQt5Widgets.so.5: no version information available (required by stacer) stacer: /usr/local/lib/libQt5Gui.so.5: no version information available (required by stacer) stacer: /usr/local/lib/libQt5Gui.so.5: no version information available (required by /lib/x86_64-linux-gnu/libQt5Charts.so.5) stacer: /usr/local/lib/libQt5Widgets.so.5: no version information available (required by /lib/x86_64-linux-gnu/libQt5Charts.so.5) stacer: symbol lookup error: /lib/x86_64-linux-gnu/libQt5Charts.so.5: undefined symbol: _ZN13QOpenGLWidget5eventEP6QEvent, version Qt_5
The only changes to the system that I'm aware of are simply running apt updates. It seems these files return when ever an update is performed.
-
@Strawberrydit
Ubuntu 20.04apt-get
putslibQt*
files in my/usr/lib/x86_64-linux-gnu/
./lib
is a soft link tousr/lib
(is yours?) so they are equivalent. Indeed the only thing I have in/usr/local/lib
ispython3.8/
.I don't know why you see your behaviour. Maybe use
locate libQt5
before and afterapt-get
s.I do not have
libQt5Charts
anything. It's an optional, try a program not using that? I still thinkstacer: symbol lookup error: /lib/x86_64-linux-gnu/libQt5Charts.so.5: undefined symbol: _ZN13QOpenGLWidget5eventEP6QEvent, version Qt_5
may be indicating you have some problem about multiple versions of Qt, perhaps only for
libQt5Charts
calls. -
So, I started having this problem after upgrading to Ubuntu 22.04 before its initial release date, and every single Qt App I had (lots of apps) stopped working, unless I removed all the Qt libs on my system.
Then thought of using LD_LIBRARY since the Apps would work with their own libs, and dang! They started working again.
It's a pain to need to use that before each app when you have a lot of them, but at least that would make it better.
Let's say for example you use TopTracker to log your remote work and invoice your clients, and all of a sudden you started getting the XCB infamous LibQt5Core error, so you need to locate where are the toptracker libs installed, so just use the "locate" instruction in your terminal:
locate toptracker
You'll get something like:
/etc/apt/sources.list.d/toptracker.list /etc/apt/sources.list.d/toptracker.list.distUpgrade /etc/cron.daily/toptracker-cron /home/box/Documents/Work/Apps/toptracker_1.6.2-6524_amd64.deb /home/box/Downloads/Tools/toptracker_1.6.2-6524_amd64.deb /opt/toptracker /opt/toptracker/bin /opt/toptracker/cron /opt/toptracker/icon.png /opt/toptracker/lib /opt/toptracker/plugins /opt/toptracker/bin/TopTracker /opt/toptracker/bin/qt.conf /opt/toptracker/cron/toptracker-cron /opt/toptracker/lib/libQt5Core.so.5 /opt/toptracker/lib/libQt5DBus.so.5 /opt/toptracker/lib/libQt5Gui.so.5 /opt/toptracker/lib/libQt5Multimedia.so.5 /opt/toptracker/lib/libQt5MultimediaGstTools.so.5 /opt/toptracker/lib/libQt5MultimediaWidgets.so.5 /opt/toptracker/lib/libQt5Network.so.5 /opt/toptracker/lib/libQt5PrintSupport.so.5 /opt/toptracker/lib/libQt5Sql.so.5 /opt/toptracker/lib/libQt5Svg.so.5 /opt/toptracker/lib/libQt5Widgets.so.5 /opt/toptracker/lib/libQt5X11Extras.so.5 /opt/toptracker/lib/libQt5XcbQpa.so.5 /opt/toptracker/lib/libcrypto.so.1.0.0 /opt/toptracker/lib/libicudata.so.55 /opt/toptracker/lib/libicui18n.so.55 /opt/toptracker/lib/libicuuc.so.55 /opt/toptracker/lib/libssl.so.1.0.0 /opt/toptracker/plugins/audio /opt/toptracker/plugins/bearer /opt/toptracker/plugins/iconengines /opt/toptracker/plugins/imageformats /opt/toptracker/plugins/mediaservice /opt/toptracker/plugins/platforms /opt/toptracker/plugins/platformthemes /opt/toptracker/plugins/sqldrivers /opt/toptracker/plugins/xcbglintegrations /opt/toptracker/plugins/audio/libqtaudio_alsa.so /opt/toptracker/plugins/audio/libqtmedia_pulse.so /opt/toptracker/plugins/bearer/libqconnmanbearer.so /opt/toptracker/plugins/bearer/libqgenericbearer.so /opt/toptracker/plugins/iconengines/libqsvgicon.so /opt/toptracker/plugins/imageformats/libqgif.so /opt/toptracker/plugins/imageformats/libqico.so /opt/toptracker/plugins/imageformats/libqjpeg.so /opt/toptracker/plugins/imageformats/libqsvg.so /opt/toptracker/plugins/mediaservice/libgstaudiodecoder.so /opt/toptracker/plugins/mediaservice/libgstcamerabin.so /opt/toptracker/plugins/mediaservice/libgstmediacapture.so /opt/toptracker/plugins/mediaservice/libgstmediaplayer.so /opt/toptracker/plugins/platforms/libqlinuxfb.so /opt/toptracker/plugins/platforms/libqxcb.so /opt/toptracker/plugins/platformthemes/libqgtk3.so /opt/toptracker/plugins/sqldrivers/libqsqlite.so /usr/bin/toptracker /usr/share/applications/toptracker.desktop /usr/share/doc/toptracker /usr/share/doc/toptracker/changelog.Debian.gz /var/crash/_opt_toptracker_bin_TopTracker.1000.crash /var/crash/_opt_toptracker_bin_TopTracker.1000.upload /var/crash/_opt_toptracker_bin_TopTracker.1000.uploaded /var/lib/dpkg/info/toptracker.list /var/lib/dpkg/info/toptracker.md5sums /var/lib/dpkg/info/toptracker.postinst /var/lib/dpkg/info/toptracker.postrm
You'll notice there is a "/opt/toptracker/lib", and that's all you have to reference to get it up and working once again:
LD_LIBRARY_PATH=/opt/toptracker/lib/ toptracker
I hope this will help others resolve this issue, until Ubuntu/QT teams bring us a fix or something.
P.S:
chrpath: didn't work
QT_QPA_PLATFORM_PLUGIN_PATH: was no help either
Forcing a chosing Qt version wasn't doing anything too.
Removing all the Snap Qt Libs, Qt Creator, Designer Studio, locally installed 5/6 versions and you name it, didn't change a thing as well.
Adding my custom .conf file into "/etc/ld.so.conf.d" then lddconfig(ing) it had no effect.