Compilació creuada de Qt6.8.0 per Raspberry Pi 3/4/5 amb docker
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/