I have a server running Ubuntu 12.04 LTS.
I would like to put the server to use building Qt5 for the Android ARMv6 platform. How does one go about doing this on a headless server?
The steps necessary for compiling Qt5 for Android on Ubuntu 12.04 LTS are described below. For the sake of convenience, I will assume that all of the commands below are run in the directory /opt/qt5-android
. You will need to adjust the paths accordingly if this is not the case.
First you will need to make sure the appropriate packages are installed:
sudo apt-get install build-essential openjdk-6-jdk
Grab the latest Android SDK:
wget http://dl.google.com/android/android-sdk_r21.1-linux.tgz
tar -xf android-sdk_r21.1-linux.tgz
The SDK doesn't ship with any platforms, so you will need to grab them:
android-sdk-linux/tools/android update sdk --no-ui
Grab the latest version of the NDK:
32-bit (i686):
wget http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86.tar.bz2
tar -xf android-ndk-r8e-linux-x86.tar.bz2
64-bit (amd64):
wget http://dl.google.com/android/ndk/android-ndk-r8e-linux-x86_64.tar.bz2
tar -xf android-ndk-r8e-linux-x86_64.tar.bz2
Now clone the following Git repository:
git clone git://gitorious.org/qt/qt5.git qt5
cd qt5
perl init-repository --no-webkit
We're almost there. Now we need to configure
and make
Qt5:
./configure \
-developer-build \
-xplatform android-g++ \
-nomake tests \
-nomake examples \
-android-ndk /opt/qt5-android/android-ndk-r8e \
-android-sdk /opt/qt5-android/android-sdk-linux \
-skip qttools \
-skip qttranslations \
-skip qtwebkit \
-skip qtserialport \
-skip qtwebkit-examples-and-demos
make
And that's it! You should now end up with a Qt5 build for Android.
References:
I don't mean to respond to another answer with an answer but this is my first post :-( and I think that that prevents me from posting this in a comment. (so consider it a citation of said answer, not a reply to it) Nathan's own answer above didn't work exactly for me.
My configure line looked more like so:
./configure \
-developer-build -platform linux-g++-64 \
-xplatform android-g++ \
-nomake tests \
-nomake examples \
-android-ndk /opt/qt5-android/android-ndk-r8e \
-android-sdk /opt/qt5-android/android-sdk-linux \
-skip qttools \
-skip qttranslations \
-skip qtwebkit \
-skip qtserialport \
-android-ndk-host linux-x86_64
Here's why:
-skip qtwebkit-examples-and-demos
caused an error in configure... It didn't like that I was skipping something that couldn't be built anyway (sorry, I lost the exact error message)
-android-ndk-host linux-x86_64
stopped configure from aborting with "
Can not detect the android host. Please use -android-ndk-host option to specify one
"
-platform linux-g++-64
is me being paranoid about whether or not configure will add the -m64
flag or whatever when working its magic for me
Other than this difference, Nathan's procedure seemed to work like a charm. My local environment building now (thanks for the tips, Mr Osman :-)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With