Diferència entre revisions de la pàgina «Compilació creuada de Qt6.8.0 per Raspberry Pi 3/4/5 amb docker»

De things.cat
Salta a: navegació, cerca
(Es crea la pàgina amb «= 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.t...».)
 
m (En marxa)
Línia 7: Línia 7:
 
  )
 
  )
  
* Feu una imatge d'un Debian 12 capaç de fer la compilació creuada per a Raspberry Pi:
+
* Feu una imatge d'un Debian 12, anomenada '''qtcrossbuild''', capaç de fer la compilació creuada per a Raspberry Pi:
 
  docker build -t qtcrossbuild .
 
  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.
 
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 =
 
= Font =
 
[https://github.com/PhysicsX/QTonRaspberryPi Cross compilation of Qt6.8.0 For Raspberry pi 3/4/5 with Docker(Base and QML packages) and Remote Debugging with Vscode]
 
[https://github.com/PhysicsX/QTonRaspberryPi Cross compilation of Qt6.8.0 For Raspberry pi 3/4/5 with Docker(Base and QML packages) and Remote Debugging with Vscode]

Revisió del 12:03, 21 gen 2025

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 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