Search code examples
linuxqtremote-debugging

Developing qt application for a remote device


I am not sure if this is a Programming or Linux question so please forgive me! Here is my situation:

I have my own PC (running Lubuntu 64 19.04) which I use as my work desktop. I have installed qt creator and qt 5.13 and everything works fine.

Now I have a mini-pc (intel nuc) which is luckily the same CPU architecture (intel x86-64). So the program will be binary compatible for both machines and allows me to develope and compile on my main machine and then remotely deploy or debug on the mini-pc using something like ssh and scp.

I want to develope some sort of "kiosk" application for this mini-pc. The problem is that it has very little storage (32GB). This kiosk application will save some data so it needs a lot of free space.

Now back to the question: For the mini-pc, I can go with qt-installer and install qt just like how I did it on my desktop. But I want to avoid this and I want only to copy the libraries that my application needs to have as small as footprint possible. So:

  1. Is there a qt 5.13 libraries only package that I can install using apt-get?
  2. Can I get away with only copying (.so or .a) files to my remote pc in the application binary folder?

What would be the must professional way?


Solution

  • You can copy only the relevant dependencies. There is a existing project for this purpose, called linuxdeployqt.

    According to the official docs:

    This Linux Deployment Tool, linuxdeployqt, takes an application as input and makes it self-contained by copying in the resources that the application uses (like libraries, graphics, and plugins) into a bundle.

    And more specific:

    When used on Qt-based applications, it can bundle a specific minimal subset of Qt required to run the application.

    The project is based in the official tool macdeployqt.