Building qt-android on windows: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Convert ExpressionEngine section headers)
m (Clean up a bit)
Line 6: Line 6:
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.


== ——————— Configuration ——————— ==
== Configuration ==


* '''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).


* '''Install the latest mingwbuilds MSYS and external binaries (for git):'''
* '''Install the latest mingwbuilds MSYS and external binaries (for git):'''
http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys+7za+wget+svn+git+mercurial+cvs-rev13.7z/download
http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys+7za+wget+svn+git+mercurial+cvs-rev13.7z/download
Extract this to <MINGW_BUILDS_ROOT> (I use C:-buildsso I end up with C:-builds\msys
Extract this to <MINGW_BUILDS_ROOT> (I use C:-buildsso I end up with C:-builds\msys


* '''Install the latest MinGW-w64 from mingwbuilds:'''
* '''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
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.
Extract to <MINGW_BUILDS_ROOT> and add <MINGW_BUILDS_ROOT>32\bin to the '''front''' of your PATH.


* '''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 ——————— ==
== Cloning ==


* '''Make the root folder for the Qt/Android build:'''
* '''Make the root folder for the Qt/Android build:'''
Line 60: Line 61:
* '''Follow step 4 at http://wiki.qt.io/Qt5ForAndroidBuilding'''
* '''Follow step 4 at http://wiki.qt.io/Qt5ForAndroidBuilding'''


== ——————— Build steps ——————— ==
== 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 69: Line 70:
* '''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 ——————— ==
== 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.

Revision as of 17:06, 11 November 2015

This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Building Qt/Android on Windows

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.

Configuration

  • Install the latest Perl:
http://strawberryperl.com/

Select Destination folder (we'll call this <PERL_ROOT>, and refer similarly to other install locations).

  • Install the latest mingwbuilds MSYS and external binaries (for git):
http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys+7za+wget+svn+git+mercurial+cvs-rev13.7z/download

Extract this to <MINGW_BUILDS_ROOT> (I use C:-buildsso I end up with C:-builds\msys

  • 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:

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.

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.