HMI
Configurare Qt-Creator su Ubuntu 20 LTS per la cross-compilazione

Introduzione

Questa è una guida alla configurazione di Qt Creator per l'utilizzo delle librerie Qt cross-compilate per il Raspberry Pi 4 e la creazione di applicazioni per il Raspberry.

Requisiti

Raspberry Pi OS Lite

Installare Raspberry Pi OS Lite su un Raspberry Pi 4 oppure, come descritto nel mio blogpost Installare Raspberry Pi OS sul Modulo di calcolo 4 Raspberry, su un Modulo di calcolo 4 Raspberry.

Qt 5.15.2 su Ubuntu 20 LTS

Configurare Raspberry Pi OS Lite su un Raspberry Pi 4 oppure come descritto nel mio blogpost Installare Raspberry Pi OS sul Modulo di calcolo 4 Raspberry e creare le librerie Qt come descritto nel mio blogpost Cross-compilazione di Qt 5.15 per Modulo di calcolo 4 Raspberry su Ubuntu 20 LTS.

Configurazione di Qt-Creator

Si dovrebbe avere installato un Qt-Creator funzionante su Ubuntu 20. Le relative istruzioni si trovano in Qt o nei vari forum e tutorial.
Inoltre, come descritto nei requisiti, si dovrebbe aver predisposto un Raspberry Pi 4 o un Modulo di calcolo 4 Raspberry con Raspberry Pi OS Lite e le appropriate librerie Qt, un cross-compilatore, e le librerie cross-compilate per il Raspberry Pi 4.
I percorsi utilizzati di seguito per le diverse configurazioni corrispondono ai percorsi dei due blogpost precedenti.
La versione di QtCreator che ho utilizzato è la 4.13.3.

Creare il dispositivo

Nella prima fase creiamo un nuovo dispositivo. A tale scopo richiamare "Options" nel menù sotto la voce "Tools" e selezionare "Devices" nella colonna a sinistra. Creare poi un nuovo dispositivo "Generic Linux Device" con "Add". Assegnare un nome al dispositivo (in questo caso RaspberryPi4-Qt-5.15), digitare sotto "Host name" l'indirizzo IP, e sotto "Username" inserire tipicamente "pi" per il Raspberry.
Successivamente è possibile testare il collegamento con il Raspberry utilizzando il pulsante "Test". Se non viene restituito il risultato "Device test finished successfully", controllare le impostazioni e verificare se il Raspberry è effettivamente raggiungibile con questi parametri.

QtCreator Device Configuration

Configurare il compilatore

Nella seconda fase dobbiamo definire i percorsi per i compilatori C e C++. Le relative impostazioni si trovano nel menù "Tools -> Options" sotto "Kits -> Compilers".
Qui utilizziamo i compilatori che abbiamo scaricato con il cross-compilatore "gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf".
Aggiungere due nuove configurazioni con"Add -> GCC -> C" o "Add -> GCC -> C++". Per C nella directory "tools" "gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc" e per C++ "gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++". Assegnare un nome a ciascuna per terminare questa impostazione.

QtCreator Compiler Configuration

Creare la versione Qt

Nella terza fase ci occorre il file qmake cross-compilato come descritto nel blogpost precedente. Le relative impostazioni si trovano nel menù "Tools -> Options" sotto "Kits -> Qt Versions".
Aggiungere nuovamente una nuova configurazione con "Add" e selezionare con il pulsante "Browse"il file qmake dalla directory "qt5.15/bin/qmake".

QtCreator Version Configuration

Creare il kit

Nella fase finale, le nuove configurazioni aggiunte vengono combinate per formare un nuovo kit. Le relative impostazioni si trovano nel menù "Tools -> Options" sotto "Kits -> Kits".
Aggiungere nuovamente una nuova configurazione con "Add" e assegnare con

  • Name: un nome univoco (con tale nome il dispositivo sarà successivamente selezionato nelle impostazioni "Project")
  • Device type: "Generic Linux Device"
  • Device: selezionare il dispositivo appena creato
  • Sysroot: selezionare la directory sysroot creata nel blogpost precedente
  • Compiler: selezionare entrambi i compilatori appena creati
  • Qt-Version: selezionare la versione di Qt appena creata
QtCreator Kit Configuration

Impostazioni di progetto

Il kit appena creato può ora essere selezionato e assegnato immediatamente al momento della creazione di un nuovo progetto oppure aggiunto ad un progetto esistente.

QtCreator Project Configuration