Compilació creuada de Qt6.8.0 per Raspberry Pi 3/4/5 amb docker

De things.cat
La revisió el 12:04, 21 gen 2025 per Jordi Binefa (discussió | contribucions) (En marxa)
Salta a: navegació, cerca

En marxa

  • Aneu al directori a on hi ha l'arxiu Dockerfile i deseu el codi a compilar dins de la carpeta project (assegureu-vos de no copiar CMakeLists.txt.user ni la carpeta build).
  • Identifiqueu el nom de l'arxiu executable. Dins l'arxiu CMakeLists.txt hi ha qt_add_executable amb el nom de l'arxiu executable (nom_arxiu_executable):
qt_add_executable(nom_arxiu_executable
   main.cpp
)
  • Feu una imatge de docker d'un Debian 12, anomenada qtcrossbuild, capaç de fer la compilació creuada per a Raspberry Pi:
docker build -t qtcrossbuild .

El primer cop a fer la imatge pot trigar al voltant de 4 hores. Un cop feta, el segon cop que es fa servir, habitualment canviant el contingut de la carpeta build, trigarà al voltant d'un minut, depenent de la complexitat del codi a compilar. Quan hi hagi actualitzacions del kernel al repositoris de Debian tornarà a trigar al voltant de 4 hores a fer-se la imatge.

  • Feu un contenidor temporal de la imatge qtcrossbuild per a poder copiar l'executable generat per a Raspberry Pi:
docker create --name contenidor_temporal qtcrossbuild
  • Copieu al vostre directori (si no ho heu canviat, seguiu al directori a on hi ha l'arxiu Dockerfile) l'executable generat per a Raspberry Pi que és a dins del contenidor:
docker cp contenidor_temporal:/build/project/nom_arxiu_executable ./nom_arxiu_executable
  • Copieu l'arxiu executable generat a la Raspberry Pi (canvieu 192.168.1.XX per la IP de la vostra Raspberry Pi):
scp pales04 pi@192.168.1.XX:/home/pi/

o (canvieu raspberry pel hostname de la vostra Raspberry Pi):

scp pales04 pi@raspberry.local:/home/pi/

Font

Cross compilation of Qt6.8.0 For Raspberry pi 3/4/5 with Docker(Base and QML packages) and Remote Debugging with Vscode