명령줄에서 안드로이드용 Qt 프로젝트 빌드하기

CMake로 빌드하기

예를 들어 Linux의 경우 Qt가 설치된 상태에서 CMake 프로젝트를 빌드하려면 qt-cmake 래퍼와 함께 다음을 사용합니다:

~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \
    -DANDROID_SDK_ROOT=~/Android/Sdk \
    -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \
    -S <source_dir> -B <build_dir> \
    -GNinja

이 페이지에서는 간결성을 위해 Linux용 안드로이드 SDK 경로를 사용하지만, 이러한 명령을 실행할 때는 시스템의 관련 경로를 사용해야 합니다.

Android SDK는 일반적으로 Qt Creator 또는 Android Studio에서 다음 위치에 설치합니다:

  • Linux: ~/Android/Sdk/
  • macOS: ~/Library/Android/sdk/
  • Windows: C:\사용자\<사용자>\앱데이터\로컬\안드로이드\에스디케이\

참고: 자체 빌드한 Qt를 사용하는 경우, Qt 빌드에 사용된 것과 동일한 값이 qt-cmake에 사용되므로 SDK 및 NDK 인수를 제공할 필요가 없습니다.

CMake를 사용하여 다중 ABI 패키지 빌드하기

Qt 6.8에서는 다중 ABI 패키지를 빌드하는 여러 가지 방법이 존재합니다. 기본적으로 qt-cmake 스크립트에 속하는 단일 ABI만 선택됩니다. QT_ANDROID_BUILD_ALL_ABIS 변수를 TRUE 로 설정하면 사용 가능한 안드로이드용 Qt SDK를 자동으로 감지할 수 있습니다. 이 감지 메커니즘은 Qt Online Installer 에서 제공하는 기본 디렉토리 구조를 사용한다고 가정합니다:

~/Qt/<qt_version>:
    android_arm64_v8a
    android_armv7
    android_x86
    android_x86_64

아래 명령은 Qt Online Installer 에서 제공하는 Qt for Android SDK를 사용하여 Android 다중 ABI 패키지를 빌드하는 가장 쉬운 방법을 보여줍니다:

~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \
    -DQT_ANDROID_BUILD_ALL_ABIS=TRUE \
    -DANDROID_SDK_ROOT=~/Android/Sdk \
    -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \
    -S <source_directory> -B <build_directory>
    -GNinja

QT_ANDROID_ABIS 변수를 사용하여 프로젝트가 빌드되는 ABI 목록을 사용자 지정할 수 있습니다. 해당 안드로이드용 Qt 개발 키트는 앞서 설명한 디렉토리 구조를 따라야 합니다. 다음 명령줄은 arm64-v8ax86 ABI 전용 프로젝트를 구성합니다:

~/Qt/<qt_version>/android_<abi>/bin/qt-cmake \
    -DQT_ANDROID_ABIS="arm64-v8a;x86" \
    -DANDROID_SDK_ROOT=~/Android/Sdk \
    -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \
    -S <source_directory> -B <build_directory>
    -GNinja

참고: qt-cmake 스크립트가 속해 있는 기본 SDK의 ABI는 무조건 사용되는 ABI 목록에 추가됩니다. 빌드에서 제외할 수는 없습니다.

참고: QT_ANDROID_BUILD_ALL_ABIS는 QT_ANDROID_ABIS보다 우선순위가 높습니다.

기본 디렉토리 구조와 일치하지 않는 안드로이드용 Qt SDK의 경로는 해당 QT_PATH_ANDROID_ABI_<ABI> 변수를 사용하여 변경할 수 있습니다.

다음 예제는 사용 가능한 Qt for Android SDK를 자동으로 감지하도록 설정하고 armeabi-v7aarm64-v8a SDK에 대한 사용자 지정 경로를 지정합니다:

<qt_for_android_install_path>/bin/qt-cmake \
    -DQT_ANDROID_BUILD_ALL_ABIS=TRUE
    -DQT_PATH_ANDROID_ABI_armeabi-v7a="<Qt/for/armeabi-v7a>" \
    -DQT_PATH_ANDROID_ABI_arm64-v8a="<Qt/for/arm64-v8a>" \
    -DANDROID_SDK_ROOT=~/Android/Sdk \
    -DANDROID_NDK_ROOT=~/Android/Sdk/ndk/26.1.10909125 \
    -S <source_directory> -B <build_directory>
    -GNinja

단일 실행 타겟이 빌드되는 ABI의 목록을 지정하는 QT_ANDROID_ABIS 타겟 속성을 설정할 수도 있습니다. 예를 들어

qt_add_executable(MyApp main.cpp)
set_target_properties(MyApp PROPERTIES QT_ANDROID_ABIS "arm64-v8a;x86")

MyApp 타깃은 QT_ANDROID_BUILD_ALL_ABIS 또는 QT_ANDROID_ABIS 변수가 설정되어 있어도 armeabi-v7aarm64-v8a 전용으로 빌드됩니다.

안드로이드 번들 만들기

프로젝트가 구성되면 다음 CMake 타깃을 사용하여 애플리케이션 번들을 생성할 수 있습니다:

cmake --build . --target apk

또는 AAB를 생성합니다:

cmake --build . --target aab

내부적으로는 Qt 코드를 빌드하여 android-build 디렉터리에 복사한 다음 Gradle을 사용하여 Java 코드를 빌드하고 애플리케이션을 패키징합니다.

안드로이드 패키지 서명

출시용 APK를 빌드한 경우 서명을 해야 합니다. 패키지에 서명하는 방법에 대한 자세한 내용은 Qt Creator 에서 Android 패키지 서명을 참조하세요. 그렇지 않으면 CMake 변수 QT_ANDROID_SIGN_APKQT_ANDROID_SIGN_AAB를 확인합니다.

AAR(안드로이드 아카이브) 파일 빌드

cmake --build . --target aar

qmake로 빌드하기

Qt 5에서와 같이 qmake 을 사용하여 사용자 프로젝트를 빌드할 수 있습니다.

참고: Qt 6에서는 qmake 을 사용하여 다중 ABI 패키지를 빌드하는 것이 지원되지 않습니다.

QT_ANDROID_ABIS, QT_ANDROID_BUILD_ALL_ABIS, QT_PATH_ANDROID_ABI_<ABI>QT_ANDROID_ABIS도참조하십시오 .

© 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.