Genyleap/Docs
راهنمای پشتهٔ توسعه · Qt

توسعه با Qt.

نسخهٔ پایدار فعلی Qt را از سورس با SDKهای جدا برای میزبان و هدف بسازید. دستورهای وابسته به نسخه در این صفحه از فایل مشخصات انتشار تولید می‌شوند که از فهرستهای رسمی Qt و مستندات فعلی پلتفرم به‌روزرسانی می‌شود.

Qt فعلی 6.12.0 Qt Creator 20.0.2 حداقل CMake 3.25 آخرین به‌روزرسانی Oct 11, 2026 10:54 UTC

نسخهٔ پایدار فعلی را دنبال کنید، نه نسخه‌ای به‌صورت ثابت بنویسید شده در راهنما.

شمارهٔ انتشار، نام آرشیو کد منبع، سری مستندات، نسخهٔ Qt Creator، مقادیر سازگاری Android و هدف مربوط به Emscripten به‌صورت مرکزی شناسایی می‌شوند. وقتی Qt نسخهٔ پایدار جدیدی منتشر کند، guide مسیرهای تولیدشده و compatibility snapshot را به‌روز می‌کند و نیازی به ویرایش دستی همهٔ صفحه‌ها نیست.

از یک منبع حقیقت واحد استفاده کنید.

اگر نیازمندی بالادستی تغییر کرد، انتشار سامانهٔ شناسایی نسخه را به‌روز کنید نه اینکه شماره نسخهٔ جدید را داخل متن کپی کنید. نکات پلتفرمی که نمی‌توان امن استنتاج کرد همچنان به matrix رسمی و فعلی Qt لینک می‌شوند.

درخت‌های کد منبع، ساخت و install را جدا نگه دارید.

داخل درخت کد منبع ساخت نکنید و نصب‌های میزبان و هدف را با هم مخلوط نکنید. یک پیشوند خنثی host روی macOS، Linux یا Windows کار می‌کند و هدف‌های کامپایل متقابل کنار آن قرار می‌گیرند.

Layoutنسخهٔ فعلی
~/Qt/
├── Src/
│   └── qt-everywhere-src-6.12.0/
├── Build/
│   └── 6.12.0/
│       ├── host/
│       ├── linux-x86_64/
│       ├── linux-arm64/
│       ├── linux-armv7/
│       ├── rpi-aarch64/
│       ├── android-arm64-v8a/
│       ├── android-armeabi-v7a/
│       ├── android-x86_64/
│       ├── android-x86/
│       ├── ios/
│       ├── ios-device/
│       ├── ios-simulator/
│       ├── wasm/
│       └── wasm-threads-simd/
├── 6.12.0/
│   ├── host/
│   ├── linux-x86_64/
│   ├── linux-arm64/
│   ├── linux-armv7/
│   ├── rpi-aarch64/
│   ├── android-arm64-v8a/
│   ├── android-armeabi-v7a/
│   ├── android-x86_64/
│   ├── android-x86/
│   ├── ios/
│   ├── ios-device/
│   ├── ios-simulator/
│   ├── wasm/
│   └── wasm-threads-simd/
└── Toolchains/
    └── emsdk/

آرشیو کد منبع نسخهٔ پایدار فعلی را دریافت کنید.

URL آرشیو زیر از فهرست نسخهٔ پایدار فعلی Qt تولید می‌شود.

Shellدریافت و استخراج
mkdir -p "$HOME/Qt/Src"
cd "$HOME/Qt/Src"

curl -fLO "https://download.qt.io/official_releases/qt/6.12/6.12.0/single/qt-everywhere-src-6.12.0.tar.xz"
tar -xf "qt-everywhere-src-6.12.0.tar.xz"

ماتریس هدف فعلی.

هدفCompatibility snapshot فعلیقاعدهٔ ساخت
macOSXcode 16+Toolchain بومی Apple؛ ساخت یونیورسال اختیاری است.
LinuxUbuntu 24.04 / Debian 11.6–12 · x86_64, arm64x86_64 و arm64 در ماتریس فعلیِ پشتیبانی دسکتاپ قرار دارند؛ معماری‌های بیشتر برای Linux نهفته به زنجیره‌ابزار و sysroot سازگار نیاز دارند.
Linux نهفتهRaspberry Pi، Jetson، Orange Pi، BeagleBone و بردهای RISC-Vاز Qt میزبان، کامپایلر متقابل منطبق با برد، sysroot و فایل زنجیره‌ابزار CMake استفاده کنید.
WindowsMSVC 2022 · Mingw-w64 15.1پیشوندها و درخت‌های ساخت MSVC و MinGW را جدا نگه دارید.
AndroidAndroid 9–16 · API 28–36 · arm64-v8a, armeabi-v7a, x86_64, x86ابتدا Qt میزبان را بسازید؛ سپس هر ABI اندروید را در درخت ساخت و مسیر نصب جداگانه نگه دارید.
iOSXcode 16+ · iOS 18+روی macOS ساخت کنید؛ پشتیبانی دستگاه و شبیه‌ساز را در iOS SDK هدف نگه دارید.
WebAssemblyEmscripten 5.0.5ابتدا میزبان Qt منطبق را بسازید؛ گونه‌های تک‌ریسمانی و چندریسمانی را جدا نگه دارید.

برای جزئیات دقیق architecture و distribution از matrix فعلی پلتفرم‌های پشتیبانی‌شدهٔ Qt ↗. This guide intentionally avoids duplicating long-lived platform tables that upstream owns.

ابتدا Qt میزبان را بسازید.

ساخت‌های کد منبع برای Android، iOS و WebAssembly به ابزارهای سمت میزبان Qt از همان انتشار نیاز دارند. پیش از هر کامپایل متقابل هدف، میزبان SDK را ساخت و بررسی کنید.

میزبان macOS

Shellآماده‌سازی
sudo xcode-select --switch /Applications/Xcode.app
sudo xcodebuild -license accept

brew install cmake ninja python bison flex gperf node pkg-config

cmake --version
ninja --version
xcrun clang++ --version
ShellConfigure و ساخت Qt میزبان
mkdir -p "$HOME/Qt/Build/6.12.0/host"
cd "$HOME/Qt/Build/6.12.0/host"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/host" \
  -release \
  -shared \
  -make examples

cmake --build . --parallel
cmake --install .

میزبان Linux

Shellخط مبنای Ubuntu / Debian
sudo apt update
sudo apt install -y \
  build-essential \
  clang \
  cmake \
  ninja-build \
  pkg-config \
  python3 \
  bison \
  flex \
  gperf \
  nodejs

بسته‌های توسعه‌ای X11/Wayland، OpenGL/Vulkan، چندرسانه‌ای، دسترس‌پذیری و سایر وابستگی‌های لازم برای ماژول‌هایی که می‌سازید را اضافه کنید. خلاصهٔ پیکربندی خود Qt مرجع است؛ قابلیت غیرفعالی را که واقعاً نیاز دارید نادیده نگیرید.

میزبان Windows

برای MSVC زنجیره‌ابزار پشتیبانی‌شدهٔ فعلی از Developer PowerShell استفاده کنید و CMake و Ninja را در همان محیط در دسترس داشته باشید.

PowerShellConfigure and build
mkdir C:\Qt\build\6.12.0\host
cd C:\Qt\build\6.12.0\host

C:\\Qt\\Src\\qt-everywhere-src-6.12.0\\configure.bat `
  -prefix C:\\Qt\\6.12.0\\host `
  -release `
  -shared `
  -make examples

cmake --build . --parallel
cmake --install .

SDK یونیورسال macOS به‌صورت اختیاری.

وقتی یک نصب از Qt باید sliceهای Intel و Apple Silicon را همزمان داشته باشد، به‌جای تغییر میزبان ساخت بومی یک universal پیشوند اختصاصی بسازید.

Shellx86_64 + arm64
mkdir -p "$HOME/Qt/Build/6.12.0/macos-universal"
cd "$HOME/Qt/Build/6.12.0/macos-universal"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/macos-universal" \
  -release \
  -shared \
  -- \
  -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"

cmake --build . --parallel
cmake --install .

معماری‌های Linux.

Qt's current supported desktop matrix covers x86_64 و arm64 on current Ubuntu and Debian releases. Other Linux architectures can still be built from source when you provide a matching cross compiler and sysroot, but they are not equivalent to the officially supported desktop configurations.

معماریروش ساختسطح پشتیبانی
x86_64ساخت بومی دسکتاپمعماری فعلیِ پشتیبانی‌شده برای دسکتاپ Linux
arm64 / aarch64ساخت بومی دسکتاپ یا کامپایل متقابلمعماری پشتیبانی‌شدهٔ دسکتاپ Linux در نسخه‌های ذکرشدهٔ Ubuntu و Debian
armv7 / armhfLinux نهفته با کامپایل متقابلبه زنجیره‌ابزار، sysroot و بررسی روی دستگاهِ مخصوص همان هدف نیاز دارد
riscv64Linux نهفته یا سفارشی با کامپایل متقابلبا زنجیره‌ابزار و sysroot مناسب قابل ساخت است، اما در ماتریس فعلیِ اصلیِ دسکتاپ قرار ندارد

ساخت بومی x86_64

این روش را روی میزبان ۶۴ بیتی Intel/AMD در Linux استفاده کنید. مسیر نصب را مخصوص همین معماری نگه دارید تا با ساخت‌های ARM تداخل پیدا نکند.

ShellLinux x86_64
mkdir -p "$HOME/Qt/Build/6.12.0/linux-x86_64"
cd "$HOME/Qt/Build/6.12.0/linux-x86_64"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/linux-x86_64" \
  -release \
  -shared \
  -make examples

cmake --build . --parallel
cmake --install .

ساخت بومی arm64 / aarch64

روی یک دستگاه Linux با معماری ARM64، Qt را درست مانند x86_64 به‌صورت بومی بسازید. Qt در حال حاضر ARM64 را برای Ubuntu 24.04 و Debian 11.6/12 در ماتریس پشتیبانی Linux قرار داده است.

ShellLinux arm64
mkdir -p "$HOME/Qt/Build/6.12.0/linux-arm64"
cd "$HOME/Qt/Build/6.12.0/linux-arm64"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/linux-arm64" \
  -release \
  -shared \
  -make examples

cmake --build . --parallel
cmake --install .

کامپایل متقابل از میزبان x86_64 برای هدف arm64

برای کامپایل متقابل Qt در Linux به Qt میزبان از همان نسخه، یک sysroot برای دستگاه هدف و فایل زنجیره‌ابزار CMake نیاز دارید. مثال زیر از زنجیره‌ابزار متداول aarch64-linux-gnu استفاده می‌کند؛ sysroot را با نمونهٔ مربوط به توزیع یا دستگاه واقعی خودتان جایگزین کنید.

در Ubuntu یا Debian، کامپایلرهای متقابل مربوط به معماری‌هایی را که می‌خواهید بسازید نصب کنید: gcc-aarch64-linux-gnu, g++-aarch64-linux-gnu, gcc-arm-linux-gnueabihf و g++-arm-linux-gnueabihf.

CMakelinux-aarch64-toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(CMAKE_SYSROOT "/opt/sysroots/aarch64-linux-gnu")
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Shellساخت متقابل arm64
mkdir -p "$HOME/Qt/Build/6.12.0/linux-arm64"
cd "$HOME/Qt/Build/6.12.0/linux-arm64"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -release \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -extprefix "$HOME/Qt/6.12.0/linux-arm64" \
  -prefix "/usr/local/qt6" \
  -nomake tests \
  -- \
  -DCMAKE_TOOLCHAIN_FILE="$HOME/Qt/Toolchains/linux-aarch64-toolchain.cmake"

cmake --build . --parallel
cmake --install .

کامپایل متقابل از میزبان x86_64 برای ARMv7 با ممیز شناور سخت‌افزاری

ARMv7 برای دستگاه‌های قدیمی‌تر Linux نهفته و بردهای ۳۲ بیتی ARM کاربرد دارد. این یک هدف نهفته با کامپایل متقابل است و جزو ماتریس اصلی پشتیبانی دسکتاپ Linux نیست. از sysroot و کامپایلری استفاده کنید که دقیقاً با تصویر سیستم دستگاه مطابقت داشته باشد.

CMakelinux-armv7-toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)

set(CMAKE_SYSROOT "/opt/sysroots/arm-linux-gnueabihf")
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)

set(CMAKE_C_FLAGS_INIT "-march=armv7-a -mfpu=neon -mfloat-abi=hard")
set(CMAKE_CXX_FLAGS_INIT "-march=armv7-a -mfpu=neon -mfloat-abi=hard")

set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Shellساخت متقابل ARMv7
mkdir -p "$HOME/Qt/Build/6.12.0/linux-armv7"
cd "$HOME/Qt/Build/6.12.0/linux-armv7"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -release \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -extprefix "$HOME/Qt/6.12.0/linux-armv7" \
  -prefix "/usr/local/qt6" \
  -nomake tests \
  -- \
  -DCMAKE_TOOLCHAIN_FILE="$HOME/Qt/Toolchains/linux-armv7-toolchain.cmake"

cmake --build . --parallel
cmake --install .
معماری‌های دیگر Linux.

همین مدل کامپایل متقابل Qt 6 برای معماری‌هایی مانند riscv64 نیز قابل استفاده است، به شرط آنکه کامپایلر، sysroot و زیرساخت گرافیک/ورودیِ سالم وجود داشته باشد. تا زمانی که ماتریس رسمی پلتفرم‌های پشتیبانی‌شدهٔ Qt صریحاً آن معماری را فهرست نکرده، آن را یک ساخت نهفته و مخصوص همان هدف در نظر بگیرید.

Raspberry Pi و سایر بردهای Linux.

Qt 6 برای Raspberry Pi و سایر بردهای Linux از یک مدل کامپایل متقابل یکسان استفاده می‌کند: Qt میزبان از همان نسخه، کامپایلر متقابل، sysroot دقیقاً منطبق با تصویر سیستم دستگاه و فایل زنجیره‌ابزار CMake. روش قدیمی Qt 5 که فقط به دستگاه mkspec متکی بود برای Qt 6 کافی نیست.

خانوادهٔ بردمعماری معمولتوضیحات
Raspberry Pi 5 / Raspberry Pi 4 · سیستم‌عامل ۶۴ بیتیaarch64 / arm64مسیر پیشنهادی برای Raspberry Pi OS فعلی و سامانه‌های نهفتهٔ جدید.
Raspberry Pi 4 / مدل‌های قدیمی‌تر · سیستم‌عامل ۳۲ بیتیarmv7 / armhfاز زنجیره‌ابزار ARMv7 با ممیز شناور سخت‌افزاری و sysroot منطبق ۳۲ بیتی استفاده کنید.
خانوادهٔ NVIDIA Jetsonaarch64از sysroot سازگار با JetPack/L4T استفاده کنید تا EGL، OpenGL ES و کتابخانه‌های سازنده با دستگاه منطبق باشند.
بردهای Orange Pi / Rockchipaarch64 یا armv7معماری به SoC و تصویر Linux نصب‌شده بستگی دارد.
BeagleBone Blackarmv7 / armhfمعمولاً با arm-linux-gnueabihf.
بردهای توسعهٔ RISC-Vriscv64به کامپایلر، sysroot و زیرساخت گرافیک/ورودی مخصوص همان هدف نیاز دارد.

نمونهٔ ۶۴ بیتی Raspberry Pi 4 / 5

SDK یا sysroot را از همان تصویر سیستم‌عاملی تهیه کنید که واقعاً روی برد اجرا می‌شود. sysroot مربوط به نسخه‌ای دیگر از Raspberry Pi OS یا توزیعی متفاوت ممکن است پیکربندی را با موفقیت رد کند اما بعداً به‌دلیل ناسازگاری EGL، Mesa، libc یا سایر کتابخانه‌های هدف شکست بخورد.

Shellپیش‌نیاز کامپایلر متقابل روی میزبان
sudo apt update
sudo apt install -y \
  gcc-aarch64-linux-gnu \
  g++-aarch64-linux-gnu \
  cmake \
  ninja-build \
  pkg-config

export RPI_SYSROOT="$HOME/Qt/Sysroots/rpi-aarch64"
export QT_HOST="$HOME/Qt/6.12.0/host"
CMakerpi-aarch64-toolchain.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)

set(CMAKE_SYSROOT "$ENV{RPI_SYSROOT}")

set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)

set(CMAKE_FIND_ROOT_PATH "$ENV{RPI_SYSROOT}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Shellساخت Qt Base برای Raspberry Pi
export RPI_SYSROOT="$HOME/Qt/Sysroots/rpi-aarch64"
export QT_HOST="$HOME/Qt/6.12.0/host"

mkdir -p "$HOME/Qt/Build/6.12.0/rpi-aarch64"
cd "$HOME/Qt/Build/6.12.0/rpi-aarch64"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/qtbase/configure" \
  -release \
  -opengl es2 \
  -qt-host-path "$QT_HOST" \
  -extprefix "$HOME/Qt/6.12.0/rpi-aarch64" \
  -prefix "/usr/local/qt6" \
  -nomake examples \
  -nomake tests \
  -- \
  -DCMAKE_TOOLCHAIN_FILE="$HOME/Qt/Toolchains/rpi-aarch64-toolchain.cmake"

cmake --build . --parallel
cmake --install .
پشتیبانی گرافیکی از sysroot دستگاه هدف می‌آید.

برای Raspberry Pi، Jetson و بردهای مشابه، خلاصهٔ پیکربندی را بررسی کنید تا یکپارچگی پلتفرمی موردنیاز شما مانند EGLFS، Wayland، OpenGL ES یا یکی دیگر از backendهای QPA واقعاً فعال باشد. موفق بودن آزمون کامپایلر به‌تنهایی نشان نمی‌دهد زیرساخت گرافیکی هدف قابل استفاده است.

استقرار و بررسی روی برد

Shellنمونهٔ استقرار
rsync -a --delete \
  "$HOME/Qt/6.12.0/rpi-aarch64/" \
  user@raspberrypi:/usr/local/qt6/

ssh user@raspberrypi \
  '/usr/local/qt6/bin/qtpaths --qt-version'

برای تصویر ۳۲ بیتی Raspberry Pi یا هدفی در ردهٔ BeagleBone، از زنجیره‌ابزار ARMv7 بخش معماری‌های Linux استفاده کنید و مسیر نصب جداگانهٔ rpi-armv7 یا مسیر مخصوص همان دستگاه را نگه دارید.

Android.

The current manifest resolves Android 9–16, API 28–36, Build Tools 36.0.0, NDK r27c (27.2.12479018), JDK 21, Gradle 9.5.1 and AGP 9.2.1 from Qt's current documentation.

Shellنصب اجزای Android سازگار با Qt فعلی
sdkmanager \
  "platform-tools" \
  "platforms;android-36" \
  "build-tools;36.0.0" \
  "ndk;27.2.12479018"

macOS · arm64-v8a

این مسیرِ تأییدشده برای ساخت Qt از کد منبع روی macOS است؛ در حالتی که Android Studio یا ابزارهای خط فرمان Android، SDK را در مسیر استاندارد نصب کرده باشند.

Shellپیکربندی Qt برای Android
mkdir -p "$HOME/Qt/Build/6.12.0/android-arm64-v8a"
cd "$HOME/Qt/Build/6.12.0/android-arm64-v8a"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/android-arm64-v8a" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -android-abis arm64-v8a \
  -android-sdk "$HOME/Library/Android/sdk" \
  -android-ndk "$HOME/Library/Android/sdk/ndk/27.2.12479018" \
  -release
Shellساخت و نصب
cmake --build . --parallel
cmake --install .

ABIهای پشتیبانی‌شدهٔ Android

ABIکاربرد معمولمسیر پیشنهادی Qt
arm64-v8aگوشی‌ها و تبلت‌های اصلی ۶۴ بیتی ARMandroid-arm64-v8a
armeabi-v7aدستگاه‌های قدیمی‌تر ۳۲ بیتی ARMandroid-armeabi-v7a
x86_64شبیه‌سازهای ۶۴ بیتی x86 برای Android و دستگاه‌های سازگارandroid-x86_64
x86پوشش شبیه‌سازها و دستگاه‌های قدیمی ۳۲ بیتی x86android-x86

macOS · armeabi-v7a

ShellAndroid روی ARM سی‌ودو بیتی
mkdir -p "$HOME/Qt/Build/6.12.0/android-armeabi-v7a"
cd "$HOME/Qt/Build/6.12.0/android-armeabi-v7a"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/android-armeabi-v7a" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -android-abis armeabi-v7a \
  -android-sdk "$HOME/Library/Android/sdk" \
  -android-ndk "$HOME/Library/Android/sdk/ndk/27.2.12479018" \
  -release

cmake --build . --parallel
cmake --install .

macOS · x86_64

ShellAndroid روی x86 شصت‌وچهار بیتی
mkdir -p "$HOME/Qt/Build/6.12.0/android-x86_64"
cd "$HOME/Qt/Build/6.12.0/android-x86_64"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/android-x86_64" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -android-abis x86_64 \
  -android-sdk "$HOME/Library/Android/sdk" \
  -android-ndk "$HOME/Library/Android/sdk/ndk/27.2.12479018" \
  -release

cmake --build . --parallel
cmake --install .
ساخت اختیاری x86 قدیمی
ShellAndroid روی x86 سی‌ودو بیتی
mkdir -p "$HOME/Qt/Build/6.12.0/android-x86"
cd "$HOME/Qt/Build/6.12.0/android-x86"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/android-x86" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -android-abis x86 \
  -android-sdk "$HOME/Library/Android/sdk" \
  -android-ndk "$HOME/Library/Android/sdk/ndk/27.2.12479018" \
  -release

cmake --build . --parallel
cmake --install .
نخستین پیکربندی ممکن است برای دریافت و آماده‌سازی وابستگی‌های Gradle زمان زیادی صرف کند.

Qt may download Gradle 9.5.1 and the Android Gradle Plugin 9.2.1 during dependency resolution. A Gradle BUILD SUCCESSFUL message means that dependency-resolution stage completed successfully; Qt's top-level configure must still finish without a later CMake error before the build tree is considered ready.

اگر دریافت Gradle با پایان مهلت زمانی متوقف شد

وابستگی‌های Gradle را یک‌بار صریحاً در حافظهٔ موقت Qt دریافت کنید و سپس دستور پیکربندی بالا را دوباره اجرا کنید. پس از آن، مرحلهٔ اصلی ساخت Qt برای این وابستگی‌ها نیازی به دریافت دوباره از شبکه ندارد.

Shellدریافت یک‌بارهٔ وابستگی‌های Gradle
QT_SRC="$HOME/Qt/Src/qt-everywhere-src-6.12.0"

cmake -E env \
  ANDROID_SDK_ROOT="$HOME/Library/Android/sdk" \
  cmake \
  -DACTION_RESOLVE_GRADLE=ON \
  -DQT_ROOT_DIR="$QT_SRC/qtbase" \
  -DGRADLE_PROJECT_DIR="$QT_SRC/qtbase/src/android/jar" \
  -DGRADLE_BUILD_VARIANT=Release \
  -DQT_ANDROID_SDK_BUILD_TOOLS_REVISION=36.0.0 \
  -P "$QT_SRC/qtbase/cmake/QtSetupAndroid.cmake"

سایر پلتفرم‌های میزبان

گزینه‌های پیکربندی یکسان‌اند و فقط مسیر Android SDK تغییر می‌کند. مسیرهای رایج SDK عبارت‌اند از ~/Android/Sdk در Linux، ~/Library/Android/sdk در macOS و C:\Users\<USER>\AppData\Local\Android\Sdk در Windows. مسیر Qt میزبان و محل نصب Qt مخصوص Android را از هم جدا نگه دارید.

POSIX shellمتغیرهای قابل‌حمل SDK
export ANDROID_SDK_ROOT="/path/to/Android/Sdk"
export ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk/27.2.12479018"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -prefix "$HOME/Qt/6.12.0/android-arm64-v8a" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -android-abis arm64-v8a \
  -android-sdk "$ANDROID_SDK_ROOT" \
  -android-ndk "$ANDROID_NDK_ROOT" \
  -release

بسته‌های چندمعماری Android

Qt را برای هر ABI جداگانه بسازید؛ سپس در مرحلهٔ ساخت برنامه، SDKهای نصب‌شدهٔ Qt را در یک APK، AAB یا AAR چندمعماری ترکیب کنید. چون این مسیرها از ساخت دستی Qt به‌دست آمده‌اند، مسیر هرکدام را صریحاً به CMake بدهید و به شناسایی خودکار پوشه‌های نصب تکیه نکنید.

Shellarm64-v8a + armeabi-v7a + x86_64
"$HOME/Qt/6.12.0/android-arm64-v8a/bin/qt-cmake" \
  -S /path/to/app \
  -B /path/to/app-build \
  -GNinja \
  -DANDROID_SDK_ROOT="$HOME/Library/Android/sdk" \
  -DANDROID_NDK_ROOT="$HOME/Library/Android/sdk/ndk/27.2.12479018" \
  -DQT_ANDROID_ABIS="arm64-v8a;armeabi-v7a;x86_64" \
  -DQT_PATH_ANDROID_ABI_arm64-v8a="$HOME/Qt/6.12.0/android-arm64-v8a" \
  -DQT_PATH_ANDROID_ABI_armeabi-v7a="$HOME/Qt/6.12.0/android-armeabi-v7a" \
  -DQT_PATH_ANDROID_ABI_x86_64="$HOME/Qt/6.12.0/android-x86_64"

cmake --build /path/to/app-build --target apk
# or:
cmake --build /path/to/app-build --target aab

فقط ABIهایی را بسازید که محصول واقعاً نیاز دارد. جدا نگه داشتن مسیر نصب هر ABI، ارتقا، بررسی صحت و بسته‌بندی چندمعماری را قابل پیش‌بینی و قابل بازتولید می‌کند.

دستگاه iOS و شبیه‌ساز.

iOS builds run on macOS and use the Apple SDK supplied by the current Xcode toolchain. The current compatibility snapshot requires Xcode 16+ and iOS 18+. The device architecture is arm64است و معماری شبیه‌ساز که از مستندات فعلی Qt شناسایی شده x86_64.

هدفSDKمعماریمسیر نصب
دستگاهiphoneosarm64ios-device
شبیه‌سازiphonesimulatorx86_64ios-simulator
SDK ترکیبی Qtدستگاه + شبیه‌سازمدیریت‌شده توسط Qtios

پیش‌فرض: ساخت یک SDK از Qt برای iOS شامل کتابخانه‌های دستگاه و شبیه‌ساز

ساخت پیش‌فرض Qt برای iOS از کد منبع، هم کتابخانه‌های دستگاه و هم شبیه‌ساز را شامل می‌شود. زمانی از این روش استفاده کنید که یک نصب Qt باید هر دو مقصد اجرای Xcode را پوشش دهد.

ShellSDK ترکیبی iOS
mkdir -p "$HOME/Qt/Build/6.12.0/ios"
cd "$HOME/Qt/Build/6.12.0/ios"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -platform macx-ios-clang \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -prefix "$HOME/Qt/6.12.0/ios" \
  -release

cmake --build . --parallel
cmake --install .

SDK مخصوص دستگاه

از -sdk iphoneos استفاده کنید وقتی یک نصب مستقل Qt فقط برای دستگاه واقعی می‌خواهید.

Shelliphoneos · arm64
mkdir -p "$HOME/Qt/Build/6.12.0/ios-device"
cd "$HOME/Qt/Build/6.12.0/ios-device"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -platform macx-ios-clang \
  -sdk iphoneos \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -prefix "$HOME/Qt/6.12.0/ios-device" \
  -release

cmake --build . --parallel
cmake --install .

SDK مخصوص شبیه‌ساز

از -sdk iphonesimulator برای یک نصب مستقل Qt مخصوص شبیه‌ساز استفاده کنید.

Shelliphonesimulator · x86_64
mkdir -p "$HOME/Qt/Build/6.12.0/ios-simulator"
cd "$HOME/Qt/Build/6.12.0/ios-simulator"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -platform macx-ios-clang \
  -sdk iphonesimulator \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -prefix "$HOME/Qt/6.12.0/ios-simulator" \
  -release

cmake --build . --parallel
cmake --install .
Apple Silicon: کتابخانه‌های فعلی Qt برای شبیه‌ساز iOS با معماری x86_64 ساخته می‌شوند.

بنابراین روی Macهای Apple Silicon، مقصد اجرای شبیه‌ساز از Rosetta استفاده می‌کند. در Xcode 26 یا جدیدتر، اگر مقصد شبیه‌ساز مبتنی بر Rosetta دیده نمی‌شود، مؤلفهٔ یونیورسال پلتفرم iOS را نصب کنید:

ShellXcode 26+
xcodebuild -downloadPlatform iOS -architectureVariant universal

ساخت یک برنامه

از qt-cmake موجود در مسیر Qt مربوط به iOS انتخاب‌شده استفاده کنید. پروژهٔ Xcode تولیدشده سپس می‌تواند روی دستگاه واقعی یا شبیه‌ساز متناظر با همان SDK اجرا شود.

Shellبرنامهٔ شبیه‌ساز
"$HOME/Qt/6.12.0/ios-simulator/bin/qt-cmake" \
  -S /path/to/app \
  -B /path/to/app-build-ios-simulator \
  -G Xcode

cmake --build /path/to/app-build-ios-simulator \
  --config Release

معماری دیگری را برای شبیه‌ساز به‌صورت دستی تحمیل نکنید، مگر اینکه مستندات فعلی Qt برای iOS صریحاً آن را پشتیبانی کند. فایل مشخصات انتشار، معماری شبیه‌ساز را از مستندات فعلی Qt دریافت می‌کند.

WebAssembly.

هر نسخهٔ فرعی Qt یک نسخهٔ مشخص از Emscripten را هدف می‌گیرد. سامانهٔ شناسایی نسخه در حال حاضر 5.0.5را انتخاب می‌کند. برای ساخت پایه دقیقاً از همین نسخه استفاده کنید و نصب emsdk را از پروژه‌های نامرتبط Emscripten جدا نگه دارید.

macOS / Linux: نصب و فعال‌سازی Emscripten SDK سازگار

POSIX shellنصب · فعال‌سازی · بررسی
export EMSCRIPTEN_VERSION="5.0.5"
export EMSDK_ROOT="$HOME/Qt/Toolchains/emsdk"

mkdir -p "$HOME/Qt/Toolchains"

if [ ! -d "$EMSDK_ROOT/.git" ]; then
  git clone https://github.com/emscripten-core/emsdk.git "$EMSDK_ROOT"
fi

cd "$EMSDK_ROOT"

./emsdk install "$EMSCRIPTEN_VERSION"
./emsdk activate "$EMSCRIPTEN_VERSION"

test -f "$EMSDK_ROOT/.emscripten" || {
  echo "Emscripten activation failed: $EMSDK_ROOT/.emscripten is missing" >&2
  exit 1
}

source "$EMSDK_ROOT/emsdk_env.sh"

command -v em++
em++ --version
em++ --version | grep -F "$EMSCRIPTEN_VERSION"
install و activate دو دستور جداگانه هستند.

اگر این دو دستور اشتباهاً به هم بچسبند، SDK فعال نمی‌شود و .emscripten ساخته نمی‌شود. اجرای emsdk_env.sh به‌تنهایی کافی نیست. Qt هنگام شناسایی WebAssembly فایل $EMSDK/.emscripten را می‌خواند.

اصلاح نصب emsdk وقتی خطای .emscripten: No such file or directory

POSIX shellاصلاح SDK فعال
export EMSCRIPTEN_VERSION="5.0.5"
cd "$HOME/Qt/Toolchains/emsdk"

./emsdk install "$EMSCRIPTEN_VERSION"
./emsdk activate "$EMSCRIPTEN_VERSION"
source ./emsdk_env.sh

test -f "$EMSDK/.emscripten"
em++ --version
em++ --version | grep -F "$EMSCRIPTEN_VERSION"

اگر em++ --version هنوز یک نسخهٔ توسعه‌ای متفاوت مانند *-gitنشان می‌دهد، ساخت پایهٔ Qt را ادامه ندهید. دوباره activateرا اجرا کنید، محیط را دوباره بارگذاری کنید و پیش از پیکربندی Qt نسخه را بررسی کنید.

نصب در Windows PowerShell

این بخش را فقط در PowerShell روی Windows اجرا کنید. دستورهای Set-Location, .bat یا .ps1 را در zsh/bash روی macOS یا Linux اجرا نکنید.

PowerShellWindows · نصب · فعال‌سازی · بررسی
$env:EMSCRIPTEN_VERSION = "5.0.5"
$emsdkRoot = "$HOME\Qt\Toolchains\emsdk"

if (-not (Test-Path "$emsdkRoot\.git")) {
    git clone https://github.com/emscripten-core/emsdk.git $emsdkRoot
}

Set-Location $emsdkRoot

.\emsdk.bat install $env:EMSCRIPTEN_VERSION
.\emsdk.bat activate $env:EMSCRIPTEN_VERSION
.\emsdk_env.ps1

em++ --version

SDK پایهٔ تک‌ریسمانی

پس از شکست پیکربندی، پیش از تلاش دوباره درخت ساخت ناقص را حذف کنید. پیکربندی ناموفق فایل قابل‌استفادهٔ build.ninja یا cmake_install.cmake.

ShellConfigure and build
export EMSCRIPTEN_VERSION="5.0.5"
export EMSDK_ROOT="$HOME/Qt/Toolchains/emsdk"

cd "$EMSDK_ROOT"
./emsdk activate "$EMSCRIPTEN_VERSION"
source "$EMSDK_ROOT/emsdk_env.sh"

test -f "$EMSDK_ROOT/.emscripten"
em++ --version | grep -F "$EMSCRIPTEN_VERSION"

rm -rf "$HOME/Qt/Build/6.12.0/wasm"
mkdir -p "$HOME/Qt/Build/6.12.0/wasm"
cd "$HOME/Qt/Build/6.12.0/wasm"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -platform wasm-emscripten \
  -prefix "$HOME/Qt/6.12.0/wasm" \
  -release

cmake --build . --parallel
cmake --install .

Build با Threads + SIMD

ShellVariant متمرکز بر کارایی
export EMSCRIPTEN_VERSION="5.0.5"
export EMSDK_ROOT="$HOME/Qt/Toolchains/emsdk"

cd "$EMSDK_ROOT"
./emsdk activate "$EMSCRIPTEN_VERSION"
source "$EMSDK_ROOT/emsdk_env.sh"

test -f "$EMSDK_ROOT/.emscripten"
em++ --version | grep -F "$EMSCRIPTEN_VERSION"

rm -rf "$HOME/Qt/Build/6.12.0/wasm-threads-simd"
mkdir -p "$HOME/Qt/Build/6.12.0/wasm-threads-simd"
cd "$HOME/Qt/Build/6.12.0/wasm-threads-simd"

"$HOME/Qt/Src/qt-everywhere-src-6.12.0/configure" \
  -qt-host-path "$HOME/Qt/6.12.0/host" \
  -platform wasm-emscripten \
  -prefix "$HOME/Qt/6.12.0/wasm-threads-simd" \
  -release \
  -feature-thread \
  -feature-wasm-simd128

cmake --build . --parallel
cmake --install .
قابلیت‌های مرورگر بخشی از زنجیره‌ابزار هستند.

WebAssembly چندریسمانی به cross-origin isolation و بستر امن نیاز دارد. قابلیت‌هایی مثل SIMD، استثنا، پیونددهی پویا و Asyncify باید با مستندات فعلی Qt WebAssembly و مرورگرهای واقعی مقصد بررسی شوند.

«Qt کامل» دقیقاً یعنی چه.

از بستهٔ کامل سورس Qt استفاده کنید و از -skip دوری کنید مگر اینکه ماژول عمداً حذف شده باشد. Qt همچنان فقط ماژول‌هایی را ساخت می‌کند که هدف فعلی پشتیبانی کند و وابستگی‌ها خارجی‌شان فراهم باشد. میزبان دسکتاپ، Android، iOS و WebAssembly SDKهای جدا هستند و مجموعه ماژول یکسانی ندارند.

Configure summary را بخوانید.

موفق شدن command کافی نیست اگر قابلیت موردنیاز به‌دلیل نبود وابستگی سیستمی بی‌صدا غیرفعال شده باشد. هر قابلیت غیرمنتظرهٔ غیرفعال را پیکربندی failure در نظر بگیرید.

پروژه‌های Qt مدرن همچنان پروژه‌های C++ مدرن هستند.

Qt دلیلی برای بازگشت به معماری فایل سرآیند-first یا الگوهای قدیمی کنسول نیست. کد دامنه/برنامه را در project ماژول‌ها نگه دارید، برای برنامه‌های گرافیکی جدید از Qt Quick/QML به‌عنوان presentation سازگارکننده استفاده کنید و مرز C++/QML را صریح نگه دارید.

CMakeBaseline مبتنی بر ماژول برای Qt Quick
cmake_minimum_required(VERSION 3.30)

project(GenyleapSample
    VERSION 0.1.0
    LANGUAGES CXX
)

add_library(genyleap_sample_core)

target_compile_features(genyleap_sample_core
    PUBLIC
        cxx_std_26
)

target_sources(genyleap_sample_core
    PUBLIC
        FILE_SET CXX_MODULES
        FILES
            src/domain/app_domain.cppm
    PRIVATE
        src/domain/app_domain.cpp
)

set_property(
    TARGET genyleap_sample_core
    PROPERTY CXX_SCAN_FOR_MODULES ON
)

find_package(Qt6 6.12 REQUIRED COMPONENTS
    Quick
    Qml
    QuickControls2
)

if(QT_KNOWN_POLICY_QTP0004)
    qt_policy(SET QTP0004 NEW)
endif()

qt_standard_project_setup(REQUIRES 6.12)

qt_add_executable(GenyleapSample
    src/bootstrap/main.cpp
)

qt_add_qml_module(GenyleapSample
    URI Genyleap.Sample
    VERSION 1.0
    QML_FILES
        ui/Main.qml
)

target_link_libraries(GenyleapSample
    PRIVATE
        genyleap_sample_core
        Qt6::Quick
        Qt6::Qml
        Qt6::QuickControls2
)

target_compile_features(GenyleapSample
    PRIVATE
        cxx_std_26
)
C++src/bootstrap/main.cpp
#include <cstdlib>

#include <QCoreApplication>
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QObject>
#include <QQuickStyle>
#include <QString>

int main(int argc, char* argv[])
{
    QGuiApplication application {argc, argv};

    QQuickStyle::setStyle(QStringLiteral("Basic"));

    QQmlApplicationEngine engine;

    QObject::connect(
        &engine,
        &QQmlApplicationEngine::objectCreationFailed,
        &application,
        [] {
            QCoreApplication::exit(EXIT_FAILURE);
        },
        Qt::QueuedConnection
    );

    engine.loadFromModule("Genyleap.Sample", "Main");

    return application.exec();
}
Do not use experimental import std; بهانه‌ای برای کنار گذاشتن ماژول‌ها نکنید.

ماژول‌های C++ متعلق به پروژه همچنان معماری اصلی هستند. فایل‌های سرآیند standard library می‌توانند در سراسری ماژول fragment متنی باقی بمانند تا زمانی که مسیر standard ماژول یک انتخاب آگاهانه و بررسی‌شدهٔ پروژه باشد.

نصب و پیکربندی Qt Creator.

آخرین نسخهٔ پایدار Qt Creator که از فهرست رسمی latest Qt شناسایی شده 20.0.2است. بستهٔ مستقل رسمی فقط محیط توسعه را نصب می‌کند؛ SDKهای Qt که خودتان ساخته‌اید در همان مسیرهای فعلی باقی می‌مانند و بعداً به‌عنوان نسخه‌های Qt و Kitها در Qt Creator ثبت می‌شوند.

macOS · بستهٔ رسمی یونیورسال

ShellQt Creator 20.0.2
cd "$HOME/Downloads"
curl -fLO "https://download.qt.io/official_releases/qtcreator/latest/qt-creator-opensource-mac-universal-20.0.2_installer.dmg"
open "qt-creator-opensource-mac-universal-20.0.2_installer.dmg"

برای نصب ساده‌تر از طریق مدیر بسته، brew install --cask qt-creator نیز قابل استفاده است، اما Qt نسخه‌های Qt Creator ارائه‌شده توسط مدیرهای بسته را به‌صورت رسمی پشتیبانی نمی‌کند.

Linux · نصب‌کنندهٔ مستقل رسمی

x86_64

ShellLinux x86_64
cd "$HOME/Downloads"
curl -fLO "https://download.qt.io/official_releases/qtcreator/latest/qt-creator-opensource-linux-x86_64-20.0.2.run"
chmod +x "qt-creator-opensource-linux-x86_64-20.0.2.run"
./"qt-creator-opensource-linux-x86_64-20.0.2.run"

arm64

ShellLinux arm64
cd "$HOME/Downloads"
curl -fLO "https://download.qt.io/official_releases/qtcreator/latest/qt-creator-opensource-linux-arm64-20.0.2.run"
chmod +x "qt-creator-opensource-linux-arm64-20.0.2.run"
./"qt-creator-opensource-linux-arm64-20.0.2.run"

بسته‌های توزیع‌های Linux ممکن است از نسخهٔ فعلی Qt Creator عقب‌تر باشند؛ اگر پشتهٔ توسعه باید همیشه نسخهٔ جاری را دنبال کند، از نصب‌کنندهٔ رسمی استفاده کنید.

Windows · نصب‌کنندهٔ مستقل رسمی

x86_64

PowerShellWindows x86_64
Set-Location "$HOME\Downloads"
Invoke-WebRequest -Uri "https://download.qt.io/official_releases/qtcreator/latest/qt-creator-opensource-windows-x86_64-20.0.2.exe" -OutFile "qt-creator-opensource-windows-x86_64-20.0.2.exe"

Start-Process -Wait ".\qt-creator-opensource-windows-x86_64-20.0.2.exe"

ARM64

PowerShellWindows ARM64
Set-Location "$HOME\Downloads"
Invoke-WebRequest -Uri "https://download.qt.io/official_releases/qtcreator/latest/qt-creator-opensource-windows-arm64-20.0.2.exe" -OutFile "qt-creator-opensource-windows-arm64-20.0.2.exe"

Start-Process -Wait ".\qt-creator-opensource-windows-arm64-20.0.2.exe"

choco install qtcreator هم در Windows به‌عنوان روش جایگزین مدیر بسته در دسترس است؛ با این ملاحظه که این شیوه مسیر رسمی توزیع Qt Creator نیست.

ثبت SDKهای Qt که خودتان ساخته‌اید

1

ابتدا ساخت از خط فرمان را اثبات کنید

Compiler, CMake, Ninja and the target's qt-cmake باید خارج از IDE هم کار کنند.

2

افزودن نسخهٔ Qt

از مسیر Preferences → Kits → Qt Versions → Add بروید و فایل bin/qtpaths یا bin/qmakeمربوط به همان نصب Qt را انتخاب کنید. برای میزبان دسکتاپ از $HOME/Qt/6.12.0/host/bin/qtpaths.

3

برای هر هدف یک Kit جدا بسازید

تنظیمات Desktop، Android، iOS، شبیه‌ساز iOS، WebAssembly و Remote Linux/دستگاه نهفته را در Kitهای جداگانه نگه دارید.

4

اتصال زنجیره‌ابزار

برای هر Kit، کامپایلر، CMake، مولد Ninja، اشکال‌زدا، نسخهٔ Qt و دستگاه اجرا را مطابق همان هدف انتخاب کنید. اجازه ندهید کامپایلر میزبان وارد Kit مربوط به هدف کامپایل متقابل شود.

Shellپیش از ثبت، Qt میزبان را بررسی کنید
"$HOME/Qt/6.12.0/host/bin/qtpaths" --qt-version
"$HOME/Qt/6.12.0/host/bin/qtpaths" --install-prefix
"$HOME/Qt/6.12.0/host/bin/qt-cmake" --version
Raspberry Pi و سایر بردها باید در یک Kit از نوع Remote Linux قرار بگیرند.

برد را در Preferences → Devicesاضافه کنید، سپس Kitای بسازید که از کامپایلر متقابل منطبق، Qt نهفتهٔ ساخته‌شده و دستگاه اجرای راه‌دور استفاده کند. Qt Creator می‌تواند برنامه را از طریق اتصال تنظیم‌شده روی دستگاه مستقر و اجرا کند.

Qt WebEngine و Qt PDF وابستگی نسخه‌ای مستقل دارند.

نسخهٔ WebEngine/PDF را به‌صورت مکانیکی از نسخهٔ پایهٔ Qt استخراج نکنید. cadence انتشار آن‌ها می‌تواند با بستهٔ اصلی Qt فرق کند. آن‌ها را وابستگی‌ها جداگانه بدانید و پیش از افزودن به ساخت از کد منبع خط مبنا، یادداشت انتشارهای فعلی را بررسی کنید.

پیش از آماده اعلام کردن، هر هدف را بررسی کنید.

ShellHost SDK
"$HOME/Qt/6.12.0/host/bin/qtpaths" --qt-version
"$HOME/Qt/6.12.0/host/bin/qtpaths" --install-prefix
"$HOME/Qt/6.12.0/host/bin/qt-cmake" --version

سپس یک برنامه واقعی را با qt-cmakeمخصوص همان هدف پیکربندی و ساخت کنید. برای برنامهٔ گرافیکی، ساخت شدن کتابخانهٔ اصلی کافی نیست: MOC تولیدشده، QML ثبت نوع، منابع، QML lint و مسیر آزمون اولیهٔ زمان اجرا قطعی همگی بخشی از اعتبارسنجی نهایی‌اند.

مراجع بالادستی فعلی.

پلتفرم‌های پشتیبانی‌شدهماتریس سازگاری فعلی دسکتاپ، موبایل و WebAssembly ↗ Build کردن Qt برای macOSنیازمندی‌های فعلی Apple میزبان و ساخت یونیورسال ↗ ساخت Qt برای Linuxراهنمای فعلی ساخت دسکتاپ x86_64 و arm64 از کد منبع ↗ کامپایل متقابل Qt برای دستگاه‌های Linuxمدل فایل زنجیره‌ابزار و sysroot برای ARM و سایر هدف‌های نهفته ↗ Build کردن Qt برای Androidراهنمای فعلی Qt میزبان، SDK، NDK و ABI ↗ برنامه‌های چندمعماری Androidترکیب چند ساخت Qt برای ABIهای مختلف در APK، AAB و AAR ↗ Build کردن Qt برای iOSراهنمای فعلی کد منبع ساخت برای دستگاه و شبیه‌ساز ↗ Qt برای WebAssemblyهدف فعلی Emscripten و محدودیت‌های مرورگر ↗ آخرین Qt Creatorفهرست دانلود آخرین Qt Creator پایدار ↗ نصب Qt Creatorروش‌های رسمی نصب برای macOS، Linux و Windows ↗ ثبت نسخه‌های Qt ساخته‌شدهافزودن qmake یا qtpaths و ساخت Kitهای منطبق ↗ Remote Linux devicesConfigure, deploy and run on Raspberry Pi and other Linux boards ↗ AI for Modern C++قرارداد C++ مدرن برای ماژول، CMake، Qt Quick و اعتبارسنجی که این مثال‌ها از آن استفاده می‌کنند ↗