Qt for Android - Building from Source | Qt 6.4

- Qt 6.4
- Qt for Android - Building from Source
- Qt 6.4.1 Reference Documentation

Getting Started with Qt for Android ◦ Qt for Android - Building User Projects

# Qt for Android - Building from Source

This page describes the process of configuring and building Qt for Android. To download and install a pre-built Qt for Android, follow the instructions on the Getting Started with Qt page.

## Prerequisites

To build Qt for Android from source please ensure all requirements from Getting Started with Qt for Android are met before continuing.

### Windows

Building Qt for Android on Windows also requires the following software:

- MinGW 11.2 toolchain
- Perl

Note: Qt for Android does not support building from source with Microsoft Visual C++ (MSVC).

Install the requirements, and set the `PATH` to include the newly installed binaries:

     set MINGW_ROOT=<MINGW_ROOT_PATH>\bin
     set PERL_ROOT=<PERL_ROOT_PATH>\bin
     set PATH=%MINGW_ROOT%;%PERL_ROOT%;%PATH%

To verify the installation, run:

     where mingw32-make.exe

The command should list mingw32-make.exe under the path <MINGW_ROOT> first.

## Getting the Sources

You can download the Qt sources from the Qt Downloads page, or follow the wiki guide for Getting the source code.

## Configuring

Qt 6 allows building Qt for Android from source code using `CMake`. Qt 6 keeps the same configure script from Qt 5. The main difference is that Qt for Android is dependent on a host Qt build, which means to build Qt for Android, you need to build Qt for the desktop platform used as a host (for example Linux, macOS, or Windows).

To configure Qt for Android, create a shadow build directory to keep the source directory clean:

     mkdir <path_to_build_dir>/build-qt
     cd <path_to_build_dir>/build-qt

And then run the configure script:

     <path_to_qt_source>/configure -platform android-clang -prefix </path/to/install> -android-ndk $ANDROID_NDK_ROOT -android-sdk $ANDROID_SDK_ROOT -qt-host-path <path_to_host_qt_installation>

### Architectures

Qt for Android supports the following ABIs:

The following configurations are supported in this Qt release:

Distribution | Architecture | Compiler | Notes
--- | --- | --- | ---
Android 6.0 or later (API level 23 or higher) | `armv7a`, `x86`, `arm64-v8`, and `x86_64` | Clang 12.0.8 (NDK r23b) as provided by Google | For JDK versions see Java Development Kit (JDK)

Note: Qt user apps require using the same NDK r23b version used for building the official Qt for Android libraries. A different version might be missing the symbols for `__emutls_get_address`.

To choose the ABI to build for, use the -android-abis feature of the configure script.

Note: 6.4 does not yet support being built for multiple ABIs at the same time.

## Advanced Configure Arguments

Qt for Android contains Java code which is compiled into *.jar files with javac. To set the javac version for source and target, use -android-javac-source and -android-javac-target respectively:

     -android-javac-source 8 -android-javac-target 8

To build Qt as a developer build instead of a prefix build, use the following instead of `-prefix` argument:

     -developer-build

Qt Configure Options contains more information about the configure options.

## Building

To build the configured Qt code, run the following command:

     cmake --build . --parallel

## Installing

Now, to install Qt, run the following command:

     cmake --install .

On Unix based OSes you should prefix the install command with the `sudo` command.

If you haven't provided the `--prefix <install-dir>` configure option, the installation is placed under `/usr/local/Qt-<version>`.

Getting Started with Qt for Android ◦ Qt for Android - Building User Projects