Qt 교차 컴파일하기

이 페이지에서는 Qt 크로스 컴파일의 일반적인 과정과 요구 사항을 설명합니다.

호스트 Qt를 빌드하는 방법을 찾고 있다면 Qt의 호스트 빌드 만들기를 참조하십시오.

용어 및 정의

교차 컴파일이란 호스트 플랫폼과 다른 대상 플랫폼에 맞게 구성하고 빌드하는 것을 의미합니다.

호스트는 Qt를 빌드하는 컴퓨터(예: 리눅스 머신)입니다. 타깃은 Qt를 빌드하는 디바이스(예: 안드로이드 태블릿)입니다.

Qt를 빌드할 때 코드를 생성하거나 다른 처리를 수행하는 여러 도구가 실행됩니다. 이러한 도구는 호스트에서 실행되므로 호스트 도구라고 합니다. 이러한 호스트 도구는 Qt의 호스트 빌드의 일부입니다. 이 호스트 빌드는 대상 플랫폼용 Qt를 빌드하기 위한 전제 조건으로 준비되어야 합니다.

최소 호스트 빌드는 Qt의 타겟 빌드를 만드는 데 필요한 호스트 도구만 포함된 Qt의 호스트 빌드입니다.

Qt는 CMake로 빌드되며, 크로스 컴파일 시 CMake는 툴체인 파일이 필요합니다. 이 파일에는 대상 플랫폼과 사용된 툴체인에 대한 정보가 포함되어 있습니다. 크로스 컴파일에 대한 CMake 문서를 참조하십시오.

일부 대상 플랫폼의 경우, Qt 구성 스크립트가 자동으로 파일을 선택합니다. 자세한 내용은 원하는 대상 플랫폼별 설명서를 참조하세요.

일부 대상 플랫폼의 경우 시스템 루트를 지정해야 합니다. 이는 애플리케이션 컴파일 및 연결에 필요한 모든 필수 파일과 라이브러리를 포함하는 독립된 환경입니다.

Qt의 호스트 빌드에 대한 일반 참고 사항

대상에 대한 Qt를 빌드하는 동안 moc, rcc, qmlcachegen, qsb 등과 같은 도구가 이곳에서 호출됩니다. 예를 들어 x64 머신에서 ARM용으로 크로스 컴파일하는 경우 동일한 Qt 버전의 로컬 x64 빌드를 먼저 사용 가능하게 만들어야 합니다. 이 Qt 빌드의 경로는 configure 또는 cmake 으로 전달됩니다. Qt의 호스트 빌드는 일반적으로 호스트 장치에 대한 Qt의 일반 빌드입니다.

Qt의 호스트 빌드에는 대상 플랫폼용 Qt 빌드에 필요한 모든 호스트 도구가 포함되어야 합니다. 예를 들어, 타겟 Qt가 Qt Quick 을 지원해야 하는 경우 호스트 Qt에는 셰이더 컴파일러인 qsb가 포함되어야 합니다. 호스트 Qt가 필요한 모든 도구를 제공하는지 확인하는 쉬운 방법은 호스트에서 타겟에 필요한 것과 동일한 Qt 모듈을 빌드하는 것입니다.

타겟 Qt가 공유 빌드된 경우 호스트 Qt를 정적으로 빌드하지 마십시오. Qt의 정적 빌드에는 공유 Qt 빌드에 필요한 모든 도구가 포함되어 있지 않을 수 있습니다.

호환성 문제를 피하려면 호스트와 타겟 Qt에 동일한 버전의 Qt를 사용해야 합니다.

Qt의 호스트 빌드 생성하기

해당 플랫폼에 대한 Qt 빌드 방법에 대한 자세한 내용은 원하는 호스트의 설명서를 참조하십시오.

최소한의 호스트 Qt를 빌드하려면 Qt를 구성한 후 다음 빌드 명령을 사용하십시오:

mkdir ~/QtHostBuild
cd ~/QtHostBuild
~/QtSource/configure -developer-build -nomake tests
cmake --build . --target host_tools

이 빌드는 호스트 플랫폼용 Qt 프로그램 개발에는 적합하지 않지만, Qt 크로스 빌드에 필요한 도구가 포함되어 있습니다.

크로스 컴파일 시 Qt의 호스트 빌드 지정하기

크로스 컴파일할 때는 대상 Qt가 호스트 Qt의 위치를 가리켜야 합니다.

구성 스크립트를 사용할 때는 다음을 사용합니다.

~/QtSource/configure -qt-host-path ~/QtHostBuild ...target-specific options...

CMake를 직접 사용할 때는

cmake -S ~/QtSource -DQT_HOST_PATH=~/QtHostBuild ...target-specific options...

대상별 옵션은 원하는 대상의 설명서를 참조하십시오.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.