Diferència entre revisions de la pàgina «Compilació creuada de Qt6.8.0 per Raspberry Pi 3/4/5 amb docker»
(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/