I'm migrating a qt-based windows app to Linux (more precisely, Linux 20.3 Cinnamon). The Qt version I'm using is 5.15.2. The compiler is gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

The migration of the code is finished. Surprisingly, I had to do a few changes, but these were minor ones. The app works perfectly when launched from QtCreator 6.0.2.

Then, I started to prepare the deployment of the app. This is my first time doing somethink like this, so after searching a bit, I found this article.

Consequently, I found where the required Qt libraries were using the ldd command (see attached file ldd.txt). I copied the qt shared libraries exactly from the path reported by the ldd command. Then, and again according to the said article above, I copied the plugins directory to my package's one. Again, I copied the plugin directory found in my Qt installation path.

Then, I prepared the .sh file to run the app as explained in the article. This is file dump_csv_header.sh, which you may find in the list of attached files at the end of this post. At the very beginning I didn't assing the environment varialbles QT_PLUGIN_PATH and QT_DEBUG_PLUGINS, since no hint about these was given in the article. The problem was then that the loader didn't find the plugin directory.

Googling a bit I found a post stating that setting QT_PLUGIN_PATH would solve the problem and indeed it did it. But then, the problem I'm experiencing now showed up:

loaded library "/home/pep/Desarrollo/ADAtools/installer/deployment/bin/plugins/platforms/libqxcb.so"
/home/pep/Desarrollo/ADAtools/installer/deployment/bin/./dump_csv_header: symbol lookup error: /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: undefined symbol: _ZN22QWindowSystemInterface24setPlatformFiltersEve ntsEb, version Qt_5_PRIVATE_API

I understand that, in spite of copying the shared libraries (and plugins) from the paths stated by the ldd command, these are not the ones I should be using; otherwise, no undefined symbol should appear.

Googling again I found a post where the user was requested to activate the variable QT_DEBUG_PLUGINS to produce a better trace of what was happening. Setting it to 1, I run the app and the log it produced is stored in run_dump.txt (see the list of attachad files).

What's wrong, can you help me?


Attached files: ldd.txt run_dump.txt dump_csv_header.sh