Problems with Open-Source Downloads read https://www.qt.io/blog/problem-with-open-source-downloads and https://forum.qt.io/post/638946

Missing packages when creating a deployable application



  • Hello, In my application I have several packages I have included in my .pro file. For example:

    PKGCONFIG += Qt5GStreamerUi-1.0
    PKGCONFIG += Qt5GStreamerUtils-1.0
    PKGCONFIG += gstreamer-1.0
    

    When trying to run my executable in another machine I will get an error of for example:

    Project ERROR: Qt5GStreamerUi-1.0 development package not found.
    

    In order to get rid of this error would I need to simply include the package in the folder where the executable is? When looking up the package on the PC I made the app on I have:

    /usr/lib/x86_64-linux-gnu/libQt5GStreamerUi-1.0.so
    /usr/lib/x86_64-linux-gnu/libQt5GStreamerUi-1.0.so.0
    /usr/lib/x86_64-linux-gnu/libQt5GStreamerUi-1.0.so.1.2.0
    /usr/lib/x86_64-linux-gnu/pkgconfig/Qt5GStreamerUi-1.0.pc
    

    Which one of these would I need to include, and do I need to just include it in the executable folder?


  • Lifetime Qt Champion

    Hi,

    That's not how it works on Linux.

    In any case, you should take a look at the linuxdeployqt project.



  • I am aware of linuxdeployqt but unfortunately that cannot work for me currently because I am deploying to an IMX6 using a script that will compile it for that system.


  • Lifetime Qt Champion

    Cross-compilation is another matter.

    Then install the set of libraries from your target distribution that will be way simpler and easier to maintain.



  • Would there be a way to include them with your executable so you would not have to install them on another machine or would that not be possible?


  • Lifetime Qt Champion

    Yes, bundle them together and use a script to start your application. In that script manipulate the LD_LIBRARY_PATH environment variable to point to the folder.

    Note that you are trying to deploy your desktop machine library to your target. That won't work because they are not the same architecture.


Log in to reply