{"id":3957,"date":"2025-12-24T07:00:00","date_gmt":"2025-12-23T22:00:00","guid":{"rendered":"https:\/\/www.litcoder.com\/?p=3957"},"modified":"2026-02-27T07:18:11","modified_gmt":"2026-02-26T22:18:11","slug":"raspberry-pi-5%ec%9a%a9-qt5-cross-compile","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=3957","title":{"rendered":"Raspberry Pi\uc6a9 Qt5 Cross Compile"},"content":{"rendered":"\n<p>\uc774 \ud3ec\uc2a4\ud305\uc740 Qt5 5.15.11\uc744 RPi5\uc6a9\uc73c\ub85c \ud06c\ub85c\uc2a4 \ucef4\ud30c\uc77c \ud558\ub294 \uacfc\uc815\uc744 \uc815\ub9ac\ud55c \uac83\uc774\ub2e4. Build host\ub294 Ubuntu 24.04\uc774\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Overview<\/h2>\n\n\n\n<p>2025\ub144 12\uc6d4 \ud604\uc7ac, Qt5\uac00 RPi\uc6a9 deb package \uc0dd\uc131\uc744 \uc9c1\uc811 \uc9c0\uc6d0\ud558\uc9c0\ub294 \uc54a\uae30 \ub54c\ubb38\uc5d0 \ub2e4\uc18c \ubcf5\uc7a1\ud558\uace0 \ubc88\uac70\ub86d\uae34 \ud558\uc9c0\ub9cc, target\uc778 Raspberry Pi OS\uc758 image \ud30c\uc77c\uc744 \ube4c\ub4dc \ud638\uc2a4\ud2b8 \uba38\uc2e0\uc5d0 loop device\ub85c \ub9c8\uc6b4\ud2b8 \uc2dc\ucf1c\uc11c \ud06c\ub85c\uc2a4 \ucef4\ud30c\uc77c\uc744 \uc218\ud589\ud558\uace0 \uadf8 \uacb0\uacfc\ub97c \ub9c8\uc6b4\ud2b8\ub41c \uacf5\uac04\uc5d0 \uc124\uce58\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \uc774\ubbf8\uc9c0 \ud30c\uc77c(raspios.img)\ub97c \uc5c5\ub370\uc774\ud2b8 \uc2dc\ud0a8\ub2e4. \uc774\ub807\uac8c \ub9cc\ub4e4\uc5b4\uc9c4 \uc774\ubbf8\uc9c0 \ud30c\uc77c\uc744 RPi5\uc6a9 SD card\uc5d0 flash\ud558\uba74 Qt5\uac00 \ud3ec\ud568\ub41c \uc774\ubbf8\uc9c0 \ud30c\uc77c\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"783\" src=\"https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/qt5_raspios_mount-1024x783.png\" alt=\"\" class=\"wp-image-3980\" style=\"aspect-ratio:1.3077767635379138;object-fit:cover;width:450px\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/qt5_raspios_mount-1024x783.png 1024w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/qt5_raspios_mount-300x229.png 300w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/qt5_raspios_mount-768x587.png 768w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/qt5_raspios_mount-624x477.png 624w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/qt5_raspios_mount.png 1391w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Target RPi OS \uc774\ubbf8\uc9c0 \uc900\ube44<\/h2>\n\n\n\n<p>Raspberry Pi OS image \ub97c \uc900\ube44\ud574\uc11c \uac1c\ubc1c \ud638\uc2a4\ud2b8\uc5d0 \ub9c8\uc6b4\ud2b8 \uc2dc\ucf1c\uc11c, Qt5\ub97c \ube4c\ub4dc\ud558\ub294\ub370 \ud544\uc694\ud55c \ud328\ud0a4\uc9c0\ub4e4\uc744 \uc124\uce58\ud55c\ub2e4. \uc774\uac83\uc740 cross compile\uc911\uc5d0 \ud544\uc694\ud55c \uc758\uc874\uc131\uc744 \ud574\uacb0\ud558\uae30 \uc704\ud55c \uacfc\uc815\uc774\ub2e4.<\/p>\n\n\n\n<p>\ud544\uc694\ud55c \ubaa8\ub4e0 \ud30c\uc77c\ub4e4\uc744 \ubaa8\uc544\ub458 \uacf5\uac04\uc744 <strong>BASE_DIR<\/strong>\ub77c\ud558\uace0 \uadf8 \uc544\ub798\uc5d0 Raspberry Pi OS image file\uc744 \ub9c8\uc6b4\ud2b8\ud560 \uc7a5\uc18c\ub97c <strong>ROOTFS<\/strong>\ub77c\uace0 \uc815\uc758\ud55c\ub2e4. \uadf8 \uc678\uc5d0 \ube4c\ub4dc\uc5d0 \ud544\uc694\ud55c \ud658\uacbd\ubcc0\uc218\ub4e4\uc744 \ud568\uaed8 \uc815\uc758\ud574 \uc8fc\uc790.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># BASE_DIR: project\uc5d0 \ud544\uc694\ud55c \ub370\uc774\ud130\ub97c \ubaa8\uc544\ub458 \ud30c\uc77c\uacbd\ub85c\n# ROOTFS: RPi image \ud30c\uc77c\uc744 \ub9c8\uc6b4\ud2b8\ud560 \uacbd\ub85c\nexport BASE_DIR=${PWD}\nexport ROOTFS=$BASE_DIR\/rootfs\n# QT_SRC_DIR: Qt5 \uc18c\uc2a4\ucf54\ub4dc\ub97c \ubcf4\uad00\n# QT_BUILD_DIR: Qt5 \ube4c\ub4dc \uacb0\uacfc\ubb3c\uc744 \ubcf4\uad00\n# QT_HOST: Qt5 \ud638\uc2a4\ud2b8\uc6a9 \ubc14\uc774\ub108\ub9ac \uc704\uce58\n# QT_TARGET: Qt5 \ud0c0\uac9f\uc6a9 \ubc14\uc774\ub108\ub9ac \uc704\uce58\nexport QT_BUILD_DIR=$BASE_DIR\/qt5-build\nexport QT_SRC_DIR=$BASE_DIR\nexport QT_HOST=$BASE_DIR\/qt5-host\nexport QT_TARGET=$BASE_DIR\/qt5-rpi<\/pre>\n\n\n\n<p>Raspberry Pi OS\uc758 image\ud30c\uc77c\uc774 \ud544\uc694\ud55c\ub370, \uc0ac\uc6a9\ud55c OS \uc774\ubbf8\uc9c0\uc758 \ubc84\uc804\uc740 2025\ub144 12\uc6d4 \ud604\uc7ac\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc774\ub2e4. \uc774 \ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\uc544\uc11c raspios.img\ub77c\ub294 \uc774\ub984\uc73c\ub85c \uc555\ucd95\uc744 \ud480\uace0, loop device\ub85c \uc124\uc815\ud574\uc11c ROOTFS\uc5d0 \uc815\uc758\ub41c \ub514\ub809\ud1a0\ub9ac \uc704\uce58\ub85c \ub9c8\uc6b4\ud2b8 \ud55c\ub2e4.<\/p>\n\n\n\n<p>\uc555\ucd95\uc774 \ud480\ub9b0 raspios.img \ud30c\uc77c\uc744 fdisk\ub85c \ub4e4\uc5ec\ub2e4 \ubcf4\uba74 \ub450\uac1c\uc758 \ud30c\ud2f0\uc158\uc774 \ubcf4\uc774\ub294\ub370, \ud558\ub098\ub294 boot\ub97c \uc704\ud55c \ud30c\ud2f0\uc158\uc73c\ub85c p1\uc5d0 \uc788\uace0 \ub2e4\ub978 \ud558\ub098\ub294 \uc6b0\ub9ac\uac00 Qt5\ub97c \ube4c\ub4dc\ud574\uc11c \uc124\uce58\ud560 rootfs\uc778\ub370, p2\ub85c \uc811\uadfc\ud558\uba74 \ub41c\ub2e4. \uc544\ub798\uc758 \uc608\ub294 \/dev\/loop4\ub85c \uc124\uc815\ub41c loop device\uc758 \ub450\ubc88\uc9f8 \ud30c\ud2f0\uc158 p2\uc744 \ub9c8\uc6b4\ud2b8 \ud558\ub294 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Raspberry Pi OS \uc774\ubbf8\uc9c0\ub97c \ub2e4\uc6b4\ub85c\ub4dc\nwget https:\/\/downloads.raspberrypi.com\/raspios_arm64\/images\/raspios_arm64-2025-12-04\/2025-12-04-raspios-trixie-arm64.img.xz\nxzcat .\/2025-12-04-raspios-trixie-arm64.img.xz > $BASE_DIR\/raspios.img\n# Loop device\ub97c \uc124\uc815\ud558\uace0 ROOTFS \uacbd\ub85c\uc5d0 \ub9c8\uc6b4\ud2b8\nmkdir -p $ROOTFS\nsudo losetup -Pf --show $BASE_DIR\/raspios.img\n\/dev\/loop4\n# Root \ud30c\uc77c \uc2dc\uc2a4\ud15c \ub9c8\uc6b4\ud2b8\nsudo mount \/dev\/loop4p2 $ROOTFS <\/pre>\n\n\n\n<p>Root \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc774 \ub9c8\uc6b4\ud2b8 \ub418\uc5c8\ub2e4\uba74 \uadf8 \uc548\uc5d0 \uc788\ub294 ARM binary\ub97c QEMU\ub85c \uc2e4\ud589\ud560 \uc218 \uc788\ub3c4\ub85d update-binfmts\ub97c \uc124\uc815\ud55c\ub2e4. \ud638\uc2a4\ud2b8 \uba38\uc2e0\uc5d0 \uc788\ub294 \/dev, \/proc\/, \/sys, \/dev\/pts\ub97c ROOTFS\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ub9c8\uc6b4\ud2b8 \ud574\uc8fc\uace0 <strong>chroot<\/strong>\uc744 \uc2e4\ud589\ud558\uba74 \ub9c8\uce58 ARM \uc2dc\uc2a4\ud15c\uc5d0 \uc811\uc18d\ud55c \uac83 \ucc98\ub7fc root shell(#)\uc744 \ubcfc \uc218 \uc788\uace0, \uad00\ub9ac\uc790 \uad8c\ud55c\uc73c\ub85c \ud30c\uc77c\uc744 \uc811\uadfc \ud560 \uc218 \uc788\ub294 \uc0c1\ud0dc\uac00 \ub41c\ub2e4.<\/p>\n\n\n\n<p>\uc5ec\uae30\uc5d0\uc11c \uc218\ud589\ud558\ub294 \uba85\ub839\uc5b4 \ub4e4\uc740 ROOTFS\uc5d0 \uc801\uc6a9\ub418\ubbc0\ub85c \uacb0\uacfc \uc801\uc73c\ub85c Raspberry Pi OS image\uac00 \uc5c5\ub370\uc774\ud2b8 \ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># QEMU ARM\uc744 \uc2e4\ud589\ud558\uae30 \uc704\ud55c \uc900\ube44\nsudo apt install qemu-user-static binfmt-support\nsudo update-binfmts --enable qemu-aarch64\nsudo cp \/usr\/bin\/qemu-aarch64-static $ROOTFS\/usr\/bin\/\n# \ud30c\uc77c\uc2dc\uc2a4\ud15c \ubc14\uc778\ub529\nsudo mount --bind \/dev  $ROOTFS\/dev\nsudo mount --bind \/proc $ROOTFS\/proc\nsudo mount --bind \/sys  $ROOTFS\/sys\nsudo mount --bind \/dev\/pts $ROOTFS\/dev\/pts\n# Launch\nsudo chroot $ROOTFS \/usr\/bin\/qemu-aarch64-static \/bin\/bash\n<\/pre>\n\n\n\n<p>Qt5\ub97c RPi\uc6a9\uc73c\ub85c \ucef4\ud30c\uc77c\ud558\uae30 \uc704\ud574 \ud544\uc694\ud55c \uc758\uc874\uc131 \ud328\ud0a4\uc9c0\ub4e4\uc744 \uc124\uce58\ud574 \uc900\ub2e4. \ucc38\uace0\ub85c, RPi OS\uc758 \ubca0\uc774\uc2a4 \uc774\ubbf8\uc9c0\ub294 \uc774\uc804\uc5d0 \ub370\ube44\uc548 Bookworm\uc774\uc5c8\ub2e4\uac00 Trixie\ub85c \uc5bc\ub9c8\uc804\uc5d0 \uc5c5\ub370\uc774\ud2b8 \ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \ud55c\uad6d\uc5d0 \uc788\ub294 \ubbf8\ub7ec \uc11c\ubc84\ub97c \uc18c\uc2a4 \ub9ac\uc2a4\ud2b8\uc5d0 \ub4f1\ub85d\n# \uad73\uc774 \uc548\ud574\ub3c4 \ub418\uc9c0\ub9cc \uc18d\ub3c4\ub97c \uc704\ud574\uc11c \ubbf8\ub7ec\ub85c \uc811\uc18d\ud55c\ub2e4.\ncat >> \/etc\/apt\/sources.list &lt;&lt; 'EOF'\ndeb http:\/\/ftp.kaist.ac.kr\/debian trixie main contrib non-free non-free-firmware\ndeb http:\/\/ftp.kaist.ac.kr\/debian trixie-updates main contrib non-free non-free-firmware\ndeb http:\/\/security.debian.org\/debian-security trixie-security main contrib non-free non-free-firmware\nEOF\n# \uc758\uc874\uc131 \ud328\ud0a4\uc9c0 \uc124\uce58\napt update\napt install -y \\\n    libgles-dev \\\n    libegl-dev \\\n    libgbm-dev \\\n    libdrm-dev \\\n    libinput-dev \\\n    libxkbcommon-dev \\\n    libx11-dev \\\n    libxext-dev \\\n    libxcb1-dev \\\n    libx11-xcb-dev \\\n    libxcb-glx0-dev \\\n    libxcb-util-dev \\\n    libxcb-xkb-dev \\\n    libxcb-xinerama0-dev \\\n    libxcb-cursor-dev \\\n    libxcb-keysyms1-dev \\\n    libxcb-render-util0-dev \\\n    libxcb-image0-dev \\\n    libxi-dev \\\n    libfontconfig1-dev \\\n    libfreetype6-dev \\\n    libpng-dev \\\n    libjpeg-dev \\\n    zlib1g-dev \\\n    libudev-dev \\\n    libdbus-1-dev \\\n    pkg-config \\\n    libxcb-shm0-dev \\\n    libxcb-xfixes0-dev \\\n    libxcb-randr0-dev \\\n    libxcb-render0-dev \\\n    libxcb-shape0-dev \\\n    libxcb-sync-dev \\\n    libxcb-icccm4-dev \\\n    libxkbcommon-x11-dev \\\n    libxfixes-dev \\\n    libxrandr-dev \\\n    libxrender-dev \\\n    libwayland-dev \\\n    libwayland-egl-backend-dev \\\n    wayland-protocols \\\n    libegl1-mesa-dev\n<\/pre>\n\n\n\n<p>\ud544\uc694\ud55c \ud328\ud0a4\uc9c0\ub97c \uc124\uce58\ud588\uc73c\uba74 chroot\uc744 \uc885\ub8cc\ud558\uace0 host\uc758 \ub514\ub809\ud1a0\ub9ac\ub4e4\uc744 unmount\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Clean up\nexit\nsudo umount $ROOTFS\/dev\/pts\nsudo umount $ROOTFS\/dev\nsudo umount $ROOTFS\/proc\nsudo umount $ROOTFS\/sys\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Qt5 Cross Compilation<\/h2>\n\n\n\n<p>\ucef4\ud30c\uc77c\uc744 \uc218\ud589\ud560 Qt5\uc758 \uc18c\uc2a4\ucf54\ub4dc\ub97c \ub2e4\uc6b4\ub85c\ub4dc \ubc1b\ub294\ub2e4. <strong>QT_SRC_DIR<\/strong> \uacbd\ub85c\uc5d0 \uc18c\uc2a4\ucf54\ub4dc\ub97c \ud480\uc5b4\uc11c \uc800\uc7a5\ud560 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># QT_SRC_DIR: Qt5\uc758 \uc18c\uc2a4\ucf54\ub4dc\ub97c \uc800\uc7a5\ud560 \uacbd\ub85c\nhttps:\/\/download.qt.io\/archive\/qt\/5.15\/5.15.11\/single\/qt-everywhere-opensource-src-5.15.11.tar.xz\ntar xvf qt-everywhere-opensource-src-5.15.11.tar.xz -C $QT_SRC_DIR<\/pre>\n\n\n\n<p>devices \uacbd\ub85c \uc544\ub798\uc5d0 \uc0c8\ub85c\uc6b4 \ub514\ubc14\uc774\uc2a4 \uba85\uc73c\ub85c linux-aarch64-gnu-g++ \ub514\ub809\ud1a0\ub9ac\ub97c \uc0dd\uc131\ud558\uace0 qmake.conf \ud30c\uc77c\uc744 \uc0dd\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \ub514\ub809\ud1a0\ub9ac\ub97c \uc0dd\uc131\ud558\uace0 qmake.conf \ub0b4\uc6a9\uc744 \ucc44\uc6b4\ub2e4.\nmkdir -p $QT_SRC_DIR\/qt-everywhere-src-5.15.11\/qtbase\/mkspecs\/devices\/linux-aarch64-gnu-g++\ncat &lt;&lt; 'EOF' > $QT_SRC_DIR\/qt-everywhere-src-5.15.11\/qtbase\/mkspecs\/devices\/linux-aarch64-gnu-g++\/qmake.conf\nMAKEFILE_GENERATOR = UNIX\nCONFIG += incremental\nQMAKE_INCREMENTAL_STYLE = sublib\n# Inherit standard Linux desktop flags (shared libs, version scripts, etc.)\ninclude(..\/..\/linux-g++\/qmake.conf)\n# Cross-compile device\nCONFIG += cross_compile\n#############################################\n# Target \/ Host Architecture\n#############################################\nQMAKE_TARGET_ARCH = aarch64\nQMAKE_TARGET      = aarch64-linux-gnu\nQMAKE_TARGET_CPU  = aarch64\nQMAKE_HOST_ARCH   = x86_64\n#############################################\n# Cross Compiler Toolchain\n#############################################\nQMAKE_CC          = aarch64-linux-gnu-gcc\nQMAKE_CXX         = aarch64-linux-gnu-g++\nQMAKE_LINK        = aarch64-linux-gnu-g++\nQMAKE_LINK_SHLIB  = aarch64-linux-gnu-g++\nQMAKE_AR          = aarch64-linux-gnu-ar cqs\nQMAKE_OBJCOPY     = aarch64-linux-gnu-objcopy\nQMAKE_STRIP       = aarch64-linux-gnu-strip\n# Make configure tests use the cross-compiler too\nQMAKE_CONF_COMPILER = $$QMAKE_CXX\n#############################################\n# Sysroot\n#############################################\nQMAKE_CFLAGS      += --sysroot=$$[QT_SYSROOT]\nQMAKE_CXXFLAGS    += --sysroot=$$[QT_SYSROOT]\nQMAKE_LFLAGS      += --sysroot=$$[QT_SYSROOT]\n#############################################\n# Default Include \/ Lib paths in sysroot\n#############################################\nQMAKE_INCDIR += $$[QT_SYSROOT]\/usr\/include\nQMAKE_LIBDIR += \\\n    $$[QT_SYSROOT]\/usr\/lib\/aarch64-linux-gnu \\\n    $$[QT_SYSROOT]\/lib\/aarch64-linux-gnu\n#############################################\n# OpenGL ES 2.0 \/ EGL \/ GBM \/ DRM (Mesa)\n#############################################\n# GLES2\nQMAKE_INCDIR_OPENGL_ES2 += \\\n    $$[QT_SYSROOT]\/usr\/include \\\n    $$[QT_SYSROOT]\/usr\/include\/GLES2\nQMAKE_LIBDIR_OPENGL_ES2 += $$[QT_SYSROOT]\/usr\/lib\/aarch64-linux-gnu\nQMAKE_LIBS_OPENGL_ES2   += -lGLESv2\n# EGL\nQMAKE_INCDIR_EGL += \\\n    $$[QT_SYSROOT]\/usr\/include \\\n    $$[QT_SYSROOT]\/usr\/include\/EGL \\\n    $$[QT_SYSROOT]\/usr\/include\/libdrm\nQMAKE_LIBDIR_EGL += $$[QT_SYSROOT]\/usr\/lib\/aarch64-linux-gnu\nQMAKE_LIBS_EGL   += -lEGL\n# GBM \/ DRM\nQMAKE_LIBS_GBM   += -lgbm\nQMAKE_LIBS_DRM   += -ldrm\nQT_QPA_DEFAULT_PLATFORM = eglfs\nload(qt_config)\nEOF<\/pre>\n\n\n\n<p>\uadf8 \ub2e4\uc74c\uc73c\ub85c qplatformdefs.h \ud30c\uc77c\uc744 \uc0dd\uc131\ud574 \uc900\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cat &lt;&lt; 'EOF' > $QT_SRC_DIR\/qt-everywhere-src-5.15.11\/qtbase\/mkspecs\/devices\/linux-aarch64-gnu-g++\/qplatformdefs.h\n#include \"..\/..\/linux-g++\/qplatformdefs.h\"\nEOF\n<\/pre>\n\n\n\n<p>\uc774\uc81c \ud06c\ub85c\uc2a4 \ucef4\ud30c\uc77c\uc744 \uc2e4\ud589\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># Clean build\ub97c \uc704\ud55c build directory \uc0ad\uc81c\nrm -rf $QT_BUILD_DIR\nmkdir -p $QT_BUILD_DIR &amp;&amp; cd $_\n# \ube4c\ub4dc \ud658\uacbd\uc124\uc815\n$QT_SRC_DIR\/qt-everywhere-src-5.15.11\/configure \\\n    -opensource -confirm-license \\\n    -release \\\n    -device linux-aarch64-gnu-g++ \\\n    -device-option CROSS_COMPILE=aarch64-linux-gnu- \\\n    -sysroot \"$ROOTFS\" \\\n    -opengl es2 \\\n    -eglfs \\\n    -xcb \\\n    -skip qtwebengine \\\n    -nomake tests -nomake examples \\\n    -prefix \/usr\/local\/qt5 \\\n    -extprefix \"$QT_TARGET\" \\\n    -hostprefix \"$QT_HOST\" \\\n    -make-tool \"make\"\n# \ud06c\ub85c\uc2a4 \ucef4\ud30c\uc77c \uc218\ud589 \ubc0f \uc124\uce58\nmake -j `nproc`\nmake -j `nproc` install<\/pre>\n\n\n\n<p>\ucef4\ud30c\uc77c\uc774 \uc644\ub8cc\ub418\uba74 \ud30c\uc77c\uc758 hard link, \ubaa8\ub4dc, \uc18c\uc720\uad8c \ub4f1\uc744 \uadf8\ub300\ub85c \uc720\uc9c0\ud558\uba74\uc11c \ubcf5\uc0ac\ud574\uc57c \ud558\ub294\ub370 rsync\uc758 archiving \uae30\ub2a5\uc744 \uc774\uc6a9\ud558\uba74 \uc774 \ubd80\ubd84\uc744 \uc218\uc6d4\ud558\uac8c \uc218\ud589\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uc774\ub97c \uc774\uc6a9\ud574\uc11c ROOTFS\uc5d0 \ucef4\ud30c\uc77c \uacb0\uacfc\ubb3c\uc744 \ubcf5\uc0ac\ud558\uace0, Qt5\uc640 \uad00\ub828\ud55c \ud658\uacbd\ubcc0\uc218\ub4e4\uc744 \ud30c\uc77c\uc5d0 \ub9cc\ub4e4\uc5b4\uc11c \ub123\uc5b4 \uc900\ub2e4.<\/p>\n\n\n\n<p>\uc124\uce58\uac00 \uc798 \ub418\uc5c8\ub2e4\uba74 ROOTFS\uc544\ub798\uc758 \/usr\/local\/qt5\uc5d0 \ud544\uc694\ud55c Qt5\uad00\ub828 \ub77c\uc774\ube0c\ub7ec\ub9ac\uc640 \ud30c\uc77c\ub4e4\uc774 \uc124\uce58\ub418\uc5c8\uc744 \uac83\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># rsync\ub85c \ud30c\uc77c \ubaa8\ub4dc\ub97c \uc720\uc9c0\ud558\uba74\uc11c \ubcf5\uc0ac\nsudo -E rsync -aH --info=progress2 $QT_BUILD_DIR\/..\/qt5-rpi\/ $ROOTFS\/usr\/local\/qt5\/\n# \ud544\uc694\ud55c \ud658\uacbd\ubcc4\uc218 \uc124\uc815: \ubd80\ud305\ud558\uba74 \uc790\ub3d9 \uc2e4\ud589\ub41c\ub2e4.\nsudo -E tee $ROOTFS\/etc\/profile.d\/qt5.sh &lt;&lt; 'EOF'\nexport LD_LIBRARY_PATH=\/usr\/local\/qt5\/lib:$LD_LIBRARY_PATH\nexport QT_PLUGIN_PATH=\/usr\/local\/qt5\/plugins\nexport QT_QPA_PLATFORM=xcb\nexport QML2_IMPORT_PATH=\/usr\/local\/qt5\/qml\nexport PATH=\/usr\/local\/qt5\/bin:$PATH\nEOF\nsudo chmod +x $ROOTFS\/etc\/profile.d\/qt5.sh\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Clean Up<\/h2>\n\n\n\n<p>ROOTFS\ub97c unmount\ud558\uace0 loop device\ub97c \ud574\uc81c\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo umount $ROOTFS\n# Loop device \/dev\/loop4\ub97c \ud574\uc81c.\n# \ucc98\uc74c losetup \ud560 \ub54c \ucd9c\ub825\ub418\ub294 loop device\uc758 \uacbd\ub85c\uba85\uc744 \uc801\uc5b4\uc900\ub2e4.\n# \ube4c\ub4dc \ud638\uc2a4\ud2b8\uc5d0 \ub530\ub77c \ub2e4\ub97c \uc218 \uc788\uc74c.\nsudo losetup -d \/dev\/loop4<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\ub3d9\uc791 \ud655\uc778<\/h2>\n\n\n\n<p>\uc774\uc81c \uc0dd\uc131\ub41c raspios.img \ud30c\uc77c\uc744 Raspberry Pi Imager\uc758 custom image flash \uae30\ub2a5\uc744 \uc774\uc6a9\ud574\uc11c SD card\uc5d0 \uc774\ubbf8\uc9c0\ub97c flash\ud55c\ub2e4.<\/p>\n\n\n\n<p>\ub9cc\uc57d, \ubd80\ud305 \ud6c4\uc5d0 \ud544\uc694\ud558\ub2e4\uba74 \uc544\ub798\uc758 XCB \uad00\ub828 \ud328\ud0a4\uc9c0\ub4e4\uc744 \uc124\uce58\ud574 \uc900\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install xorg xwayland libxcb1 libx11-6 libxext6<\/pre>\n\n\n\n<p>\uc2dc\ud5d8\uc6a9\uc73c\ub85c \uac04\ub2e8\ud558\uac8c \ub9cc\ub4e0 c++ testapp\uc73c\ub85c \ub3d9\uc791\uc744 \ud655\uc778\ud588\ub2e4.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"480\" src=\"https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/rpi5_qt5_testapp.png\" alt=\"\" class=\"wp-image-3955\" style=\"width:450px\" srcset=\"https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/rpi5_qt5_testapp.png 800w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/rpi5_qt5_testapp-300x180.png 300w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/rpi5_qt5_testapp-768x461.png 768w, https:\/\/litcoder.com\/wp-content\/uploads\/2025\/12\/rpi5_qt5_testapp-624x374.png 624w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc774 \ud3ec\uc2a4\ud305\uc740 Qt5 5.15.11\uc744 RPi5\uc6a9\uc73c\ub85c \ud06c\ub85c\uc2a4 \ucef4\ud30c\uc77c \ud558\ub294 \uacfc\uc815\uc744 \uc815\ub9ac\ud55c \uac83\uc774\ub2e4. Build host\ub294 Ubuntu 24.04\uc774\ub2e4. Overview 2025\ub144 12\uc6d4 \ud604\uc7ac, Qt5\uac00 RPi\uc6a9 deb package \uc0dd\uc131\uc744 \uc9c1\uc811 \uc9c0\uc6d0\ud558\uc9c0\ub294 \uc54a\uae30 \ub54c\ubb38\uc5d0 \ub2e4\uc18c \ubcf5\uc7a1\ud558\uace0 \ubc88\uac70\ub86d\uae34 \ud558\uc9c0\ub9cc, target\uc778 Raspberry Pi OS\uc758 image \ud30c\uc77c\uc744 \ube4c\ub4dc \ud638\uc2a4\ud2b8 \uba38\uc2e0\uc5d0 loop device\ub85c \ub9c8\uc6b4\ud2b8 \uc2dc\ucf1c\uc11c \ud06c\ub85c\uc2a4 \ucef4\ud30c\uc77c\uc744 \uc218\ud589\ud558\uace0 \uadf8 \uacb0\uacfc\ub97c \ub9c8\uc6b4\ud2b8\ub41c \uacf5\uac04\uc5d0 \uc124\uce58\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \uc774\ubbf8\uc9c0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,5],"tags":[377,376,375,374,372,373,369],"class_list":["post-3957","post","type-post","status-publish","format-standard","hentry","category-linux","category-programming","tag-arm","tag-chroot","tag-cross-compile","tag-qt5","tag-raspberrypi","tag-raspberrypi-os","tag-rpi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3957"}],"version-history":[{"count":15,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3957\/revisions"}],"predecessor-version":[{"id":4274,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/3957\/revisions\/4274"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}