Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Building qt-android on windows: Difference between revisions
No edit summary |
No edit summary |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Tested last time on branch 5.4 2015-01-22 | Tested last time on branch 5.4 2015-01-22 | ||
Note, it is not currently possible to use Microsoft's compilers to build the Windows host tools for Qt Android. | Note, it is not currently possible to use Microsoft's compilers to build the Windows host tools for Qt Android. | ||
== | == Setting up a development environment == | ||
* '''Install the latest Perl:''' | * '''Install the latest Perl:''' | ||
http://strawberryperl.com/ | http://strawberryperl.com/ | ||
Select Destination folder (we'll call this <PERL_ROOT>, and refer similarly to other install locations). | Select Destination folder (we'll call this <PERL_ROOT>, and refer similarly to other install locations). | ||
* '''Set up the MinGW toolchain.''' | |||
* ''' | One way to do this is to download a pre-built Qt package for MinGW, and then add it (e.g. C:\dev\Qt\Tools\mingw730_64\bin) to PATH. | ||
Another way is to install the latest MinGW-w64 from mingwbuilds: | |||
http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/32-bit/threads-win32/dwarf/x32-4.8.1-release-win32-dwarf-rev1.7z/download | |||
Extract to <MINGW_BUILDS_ROOT> and add <MINGW_BUILDS_ROOT>32\bin to the '''front''' of your PATH. | |||
http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/32-bit/threads-win32/dwarf/x32-4.8.1-release-win32-dwarf-rev1.7z/download | |||
* '''Install the latest JDK 7:''' | * '''Install the latest JDK 7:''' | ||
http://www.oracle.com/technetwork/java/javase/downloads/index.html | http://www.oracle.com/technetwork/java/javase/downloads/index.html | ||
Add <JDK_ROOT>to PATH. | Add <JDK_ROOT> to PATH. | ||
* '''Install Android NDK:''' | * '''Install Android NDK:''' | ||
https://developer.android.com/tools/sdk/ndk/index.html | https://developer.android.com/tools/sdk/ndk/index.html | ||
Extract to <ANDROID_NDK_PATH> | Extract to <ANDROID_NDK_PATH> | ||
If you have ndk9 installed update it to latest version cause it doesn't work any more. | If you have ndk9 installed update it to latest version cause it doesn't work any more. | ||
* '''Install the latest Android SDK (tools only):''' | * '''Install the latest Android SDK (tools only):''' | ||
http://developer.android.com/sdk/index.html | http://developer.android.com/sdk/index.html | ||
Run the Android SDK Manager and install the latest version of "SDK Platform", "Google APIs" and "build-tools" in <ANDROID_SDK_PATH> | Run the Android SDK Manager and install the latest version of "SDK Platform", "Google APIs" and "build-tools" in <ANDROID_SDK_PATH> | ||
* '''Open cmd.exe window and perform some checks:''' | * '''Open cmd.exe window and perform some checks:''' | ||
Ensure "where gcc.exe" lists <MINGW_ROOT>.exe first (before <PERL_ROOT>.exe) | Ensure "where gcc.exe" lists <MINGW_ROOT>.exe first (before <PERL_ROOT>.exe) | ||
Ensure "where mingw32-make.exe" lists <MINGW_ROOT>32-make.exe first. | Ensure "where mingw32-make.exe" lists <MINGW_ROOT>32-make.exe first. | ||
Ensure "where perl.exe" lists <PERL_ROOT>.exe first. | Ensure "where perl.exe" lists <PERL_ROOT>.exe first. | ||
Ensure "where javac.exe" lists <JDK_ROOT>first. | Ensure "where javac.exe" lists <JDK_ROOT>first. | ||
* '''Add some environment variables:''' | * '''Add some environment variables:''' | ||
set "ANDROID_API_VERSION=android-21" | <code>set "ANDROID_API_VERSION=android-21" | ||
set "ANDROID_SDK_ROOT=<ANDROID_SDK_PATH>" | set "ANDROID_SDK_ROOT=<ANDROID_SDK_PATH>" | ||
set "ANDROID_TARGET_ARCH=armeabi-v7a" | set "ANDROID_TARGET_ARCH=armeabi-v7a" | ||
set "ANDROID_BUILD_TOOLS_REVISION=21.1.2" | set "ANDROID_BUILD_TOOLS_REVISION=21.1.2" | ||
set "ANDROID_NDK_PATH=<ANDROID_NDK_PATH>" | set "ANDROID_NDK_PATH=<ANDROID_NDK_PATH>" | ||
set "ANDROID_TOOLCHAIN_VERSION=4.9" | set "ANDROID_TOOLCHAIN_VERSION=4.9"</code> | ||
set "ANDROID_NDK_HOST=windows-x86_64" | And the path to NDK: | ||
<code>set "ANDROID_NDK_HOST=windows-x86_64"</code> | |||
or | or | ||
set "ANDROID_NDK_HOST=windows" | <code>set "ANDROID_NDK_HOST=windows"</code> | ||
.. depending on which NDK you downloaded. | .. depending on which NDK you downloaded. | ||
== | == Cloning == | ||
* '''Make the root folder for the Qt/Android build:''' | * '''Make the root folder for the Qt/Android build:''' | ||
Line 59: | Line 55: | ||
* '''Follow step 4 at http://wiki.qt.io/Qt5ForAndroidBuilding''' | * '''Follow step 4 at http://wiki.qt.io/Qt5ForAndroidBuilding''' | ||
== | == Build steps == | ||
<code>configure.bat -developer-build -platform win32-g++ -opengl es2 -xplatform android-g++ -android-ndk ANDROID_NDK_PATH -android-sdk ANDROID_SDK_ROOT -opensource -confirm-license -nomake tests -nomake examples | <code>configure.bat -developer-build -platform win32-g++ -opengl es2 -xplatform android-g++ -android-ndk ANDROID_NDK_PATH -android-sdk ANDROID_SDK_ROOT -opensource -confirm-license -nomake tests -nomake examples | ||
Line 68: | Line 64: | ||
* '''Follow steps 8..11 at http://wiki.qt.io/Qt5ForAndroidBuilding (replacing make with mingw32-make.exe)''' | * '''Follow steps 8..11 at http://wiki.qt.io/Qt5ForAndroidBuilding (replacing make with mingw32-make.exe)''' | ||
== Finally == | |||
You can also build Qt/Android from the MSYS shell- the one from mingw-builds that you already downloaded - following much the same procedure and using exactly the same software. This is currently left as an exercise for the reader. | You can also build Qt/Android from the MSYS shell- the one from mingw-builds that you already downloaded - following much the same procedure and using exactly the same software. This is currently left as an exercise for the reader. |
Latest revision as of 10:35, 1 March 2019
Tested last time on branch 5.4 2015-01-22
Note, it is not currently possible to use Microsoft's compilers to build the Windows host tools for Qt Android.
Setting up a development environment
- Install the latest Perl:
http://strawberryperl.com/
Select Destination folder (we'll call this <PERL_ROOT>, and refer similarly to other install locations).
- Set up the MinGW toolchain.
One way to do this is to download a pre-built Qt package for MinGW, and then add it (e.g. C:\dev\Qt\Tools\mingw730_64\bin) to PATH. Another way is to install the latest MinGW-w64 from mingwbuilds:
http://sourceforge.net/projects/mingwbuilds/files/host-windows/releases/4.8.1/32-bit/threads-win32/dwarf/x32-4.8.1-release-win32-dwarf-rev1.7z/download
Extract to <MINGW_BUILDS_ROOT> and add <MINGW_BUILDS_ROOT>32\bin to the front of your PATH.
- Install the latest JDK 7:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Add <JDK_ROOT> to PATH.
- Install Android NDK:
https://developer.android.com/tools/sdk/ndk/index.html
Extract to <ANDROID_NDK_PATH> If you have ndk9 installed update it to latest version cause it doesn't work any more.
- Install the latest Android SDK (tools only):
http://developer.android.com/sdk/index.html
Run the Android SDK Manager and install the latest version of "SDK Platform", "Google APIs" and "build-tools" in <ANDROID_SDK_PATH>
- Open cmd.exe window and perform some checks:
Ensure "where gcc.exe" lists <MINGW_ROOT>.exe first (before <PERL_ROOT>.exe) Ensure "where mingw32-make.exe" lists <MINGW_ROOT>32-make.exe first. Ensure "where perl.exe" lists <PERL_ROOT>.exe first. Ensure "where javac.exe" lists <JDK_ROOT>first.
- Add some environment variables:
set "ANDROID_API_VERSION=android-21"
set "ANDROID_SDK_ROOT=<ANDROID_SDK_PATH>"
set "ANDROID_TARGET_ARCH=armeabi-v7a"
set "ANDROID_BUILD_TOOLS_REVISION=21.1.2"
set "ANDROID_NDK_PATH=<ANDROID_NDK_PATH>"
set "ANDROID_TOOLCHAIN_VERSION=4.9"
And the path to NDK:
set "ANDROID_NDK_HOST=windows-x86_64"
or
set "ANDROID_NDK_HOST=windows"
.. depending on which NDK you downloaded.
Cloning
- Make the root folder for the Qt/Android build:
Make sure there are no spaces in this path and that it doesn't contain too many characters. I went for "C:"
mkdir C:cd C:
- Follow step 4 at http://wiki.qt.io/Qt5ForAndroidBuilding
Build steps
configure.bat -developer-build -platform win32-g++ -opengl es2 -xplatform android-g++ -android-ndk ANDROID_NDK_PATH -android-sdk ANDROID_SDK_ROOT -opensource -confirm-license -nomake tests -nomake examples
mingw32-make.exe -j<N>
..where <N> is the number of parallel jobs your system can optimally exploit. If you have trouble, remove the -j<N>, and try again.
- Follow steps 8..11 at http://wiki.qt.io/Qt5ForAndroidBuilding (replacing make with mingw32-make.exe)
Finally
You can also build Qt/Android from the MSYS shell- the one from mingw-builds that you already downloaded - following much the same procedure and using exactly the same software. This is currently left as an exercise for the reader.