[Buildroot] 빌드루트 Qt 크로스 컴파일 환경 구축

2025. 12. 29. 13:59·Buildroot
반응형
 

[Buildroot] 빌드루트 와이파이(WiFi) 및 SSH 활성화 설정

임베디드 리눅스 개발시 크로스 컴파일을 필수이며 그러기 위해서는 SSH를 활성화 해야한다.빌드루트는 이더넷이 기본으로 활성화가 되어있어 랜선을 꽃고 SSH만 활성화 해서 크로스 컴파일을

gun-ny.tistory.com

이전 글에서 빌드루트 설정을 통해 와이파이 및 SSH 활성화를 했으면 이제 호스트 컴퓨터에서 SSH를 이용하여 타겟보드를 대상으로 크로스 컴파일이 가능하다.

 

현재까지 써왔던 글들과 마찬가지로 라즈베리파이5를 타겟보드로 크로스 컴파일을 해보도록 하겠다.

 

Qt는 Qt6부터 qmake이 아닌 CMake를 권장한다.

이번 글에서는 CMake 프로젝트 기준으로 작성토록 하겠다.

 

Qt 크로스 컴파일 Kit 설정


Edit -> Preferences 를 들어가면 위와 같은 설정창을 볼 수 있다.

 

'Remote Linux Device'를 추가해주고 이전 글을 통해 SSH에 접속했듯이 호스트네임과 유저네임 등을 위와 같이 설정하여 연결을 시도하여 비밀번호를 입력하면 연결이 된다.

 

비밀번호 없이 키를 통해 자동으로 연결하고 싶다면 'Use specific Key'와 'Auto-connect on startup'을 활성화 시켜준 뒤 'Create New...'를 통해 키 암호화 방식을 선택한 뒤 키를 만들고 'Deploy Public Key...'를 눌러 공개키를 타겟보드에 등록하면 된다.

 

원격 컴퓨터에 생성된 개인 키와 공개 키는 '~/.ssh' 경로에 'qtc_id'와 'qtc_id.pub'으로 저장되며 타겟보드에 등록된 공개키는 똑같은 경로의 'authorized_keys'에 저장된다.

 

이렇게 타겟보드에 접속하기 위한 SSH 설정이 끝났으면 Kits 탭의 Qt Versions 탭으로 가보자

그리고 위와 같이 경로를 설정하여 추가를 하면 된다.

경고 아이콘이 떠있는 이유는 Qt 버전 환경 변수를 찾을 수 없다는건데 qmake는 사용하지 않을거라 일단 무시하고 다음으로 넘어가자

 

컴파일러 설정도 위와 같은 경로로 추가하면 C 컴파일러 경로와 더불어 C++ 컴파일러 경로도 자동으로 지정된다.

라즈베리파이5 아키텍쳐인 aarch64(arm64)를 지정해서 ABI는 자동으로 'arm-linux-generic-elf-64bit'로 지정된다.

 

디버거도 똑같이 위와 같은 경로로 추가해준다.

 

그렇게 Kits 탭으로 돌아와서 지금까지 추가해준 타겟보드(Run device), 컴파일러(Compiler), 디버거(Debugger), qmake(Qt version)을 지정해주고 'Sysroot'는 위와 같은 경로로 설정하여 Kit를 추가해준다.

 

아까 설정했던 Qt version이 이번에는 지정한 컴파일러와 ABI가 맞지 않다고 경고를 띄우는데 이 또한 무시해준다.

 

이렇게 우분투에서 라즈베리파이5용 크로스 컴파일러를 설정하였다.

어느 호스트 컴퓨터(윈도우 등)에서든 위와 같이 Kit를 설정해주면 라즈베리파이5용 타겟보드 크로스 컴파일을 할 수 있다.

 

이제 프로젝트를 만들텐데 빌드시스템을 qmake가 아닌 CMake(Qt 5 and Qt 6)으로 만들어야 한다.

 

그리고 Kit 선택에서 우리가 만들었던 Kit를 선택해준다.

 

프로젝트 빌드 및 실행


프로젝트가 만들어졌다면 Build -> Run CMake를 눌러 CMake를 돌리면 위 에러 메시지를 사라진다.

 

import QtQuick
import QtQuick.Controls.Material

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    Column {
        anchors.centerIn: parent
        spacing: 30

        Label {
            anchors.horizontalCenter: parent.horizontalCenter
            font.bold: true
            font.pointSize: 100
            text: "Hello SSH"
        }

        Button {
            anchors.horizontalCenter: parent.horizontalCenter
            width: 300
            height: 100
            font.bold: true
            font.pointSize: 20
            text: "Click Me"
        }
    }
}

필자는 간단하게 위와 같이 qml을 작성하여 텍스트와 버튼이 있는 UI를 구성하였다.

 

그리고 Run을 눌러 타겟보드에서 애플리케이션을 실행해보면 위와 같은 메시지가 뜰 수 있다.

 

어디서 본 익숙한 메시지다. 아래 글에서 LANG과 언어 관련 환경변수를 설정해주지 않아 발생했던 메시지다.

 

[Buildroot] 빌드루트를 올린 라즈베리파이5에서 Qt 애플리케이션 실행

[STM32/라즈베리파이/Qt] TA모닝 아날로그 계기판 디지털 계기판으로 만들기* 이번 프로젝트 작업기는 포트폴리오용으로 쓰는 것이라 이전 프로젝트의 작업기보다 조금 더 자세히 쓴 글이라는 점

gun-ny.tistory.com

 

LANG=ko_KR.UTF-8
QT_QPA_EGLFS_KMS_CONFIG=/etc/qt/kms.json
QT_QPA_EGLFS_KMS_ATOMIC=1

위와 같이 애플리케이션 실행 전에 환경 변수를 지정해주면 된다.

 

그럼 개발은 호스트 컴퓨터(우분투)에서 하여 컴파일까지 하고 실행은 타겟 보드(라즈베리파이5)에서 하는 크로스 컴파일 환경이 구축되어 위와 같이 애플리케이션 실행은 라즈베리파이5에서 되는 것을 볼 수 있다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'Buildroot' 카테고리의 다른 글

[Buildroot] 빌드루트 와이파이(WiFi) 및 SSH 활성화 설정  (0) 2025.12.29
[Buildroot] 빌드루트를 올린 라즈베리파이5에서 Qt 애플리케이션 실행  (0) 2025.12.26
[Buildroot] cmdline.txt quiet 부팅 옵션으로 부팅 로그 숨기기  (0) 2025.12.24
[Buildroot] Busybox 초기화 시스템의 init.d를 통해 시작 프로그램 등록  (0) 2025.12.24
[Buildroot] make -dirclean 빌드 최적화를 통해 Pakage, rootfs, cmdline.txt, config.txt 재구성  (0) 2025.12.24
'Buildroot' 카테고리의 다른 글
  • [Buildroot] 빌드루트 와이파이(WiFi) 및 SSH 활성화 설정
  • [Buildroot] 빌드루트를 올린 라즈베리파이5에서 Qt 애플리케이션 실행
  • [Buildroot] cmdline.txt quiet 부팅 옵션으로 부팅 로그 숨기기
  • [Buildroot] Busybox 초기화 시스템의 init.d를 통해 시작 프로그램 등록
이니셜P
이니셜P
카카오톡 문의 : initial_p 유튜브 : https://www.youtube.com/@gun-ny
    반응형
  • 이니셜P
    #include <이니셜.P>
    이니셜P
  • 전체
    오늘
    어제
    • 분류 전체보기 (93)
      • 협력점 안내 (1)
      • 프로젝트 작업기 (11)
      • 프로젝트 포트폴리오 (3)
      • 끄적끄적 (2)
      • Arduino (11)
      • STM32 (0)
      • ESP32 (8)
      • EasyEDA (0)
      • QT (5)
      • LVGL (0)
      • Buildroot (14)
      • Yocto (2)
      • Git (2)
      • C언어, C++ (18)
      • 프로그래머스 (16)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      빌드루트
      리눅스
      SN65HVD230
      rootfs
      Embedded
      Overlay
      Qt
      RaspberryPi
      esp32
      모닝
      Buildroot
      계기판
      0xbe000011
      루트파일시스템
      can
      linux
      임베디드
      SError
      라즈베리파이
      아두이노
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.5
    이니셜P
    [Buildroot] 빌드루트 Qt 크로스 컴파일 환경 구축
    상단으로

    티스토리툴바