У меня есть сервер с Ubuntu 12.04 LTS.
Я хочу, чтобы сервер использовал здание Qt5 для платформы Android ARMv6. Как делать это на безголовом сервере?
У меня есть сервер с Ubuntu 12.04 LTS.
Я хочу, чтобы сервер использовал здание Qt5 для платформы Android ARMv6. Как делать это на безголовом сервере?
Ниже описаны шаги, необходимые для компиляции Qt5 для Android на Ubuntu 12.04 LTS. Для удобства я предполагаю, что все приведенные ниже команды запускаются в каталоге /opt/qt5-android
. Вам нужно будет отрегулировать пути соответственно, если это не так.
Сначала вам нужно убедиться, что установлены соответствующие пакеты:
sudo apt-get install build-essential openjdk-6-jdk
Возьмите последнюю версию Android SDK:
wget http://dl.google.com/android/android-sdk_r21.1-linux.tgz
tar -xf android-sdk_r21.1-linux.tgz
SDK не поставляется с любыми платформами, поэтому вам нужно будет их захватить:
android-sdk-linux/tools/android update sdk --no-ui
Возьмите последнюю версию NDK:
32-разрядный (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-разрядный (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
Теперь клонируем следующий репозиторий Git:
git clone git://gitorious.org/qt/qt5.git qt5
cd qt5
perl init-repository --no-webkit
Мы почти там. Теперь нам нужно configure
и 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
И это! Теперь вам нужно создать сборку Qt5 для Android.
Литература:
Я не хочу отвечать на другой ответ с ответом, но это мой первый пост:-( и я думаю, что это мешает мне опубликовать это в комментарии. (так что считайте это ссылкой на ответ, а не ответ на него) Ответ Натана, написанный выше, не работал точно для меня.
Моя строка конфигурации больше похожа на:
./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
Вот почему:
-skip qtwebkit-examples-and-demos
вызвало ошибку в настройке... Мне не понравилось, что я пропускал то, что невозможно было построить в любом случае (извините, я потерял точное сообщение об ошибке)
-android-ndk-host linux-x86_64
отключить настройку от прерывания с помощью <
Can not detect the android host. Please use -android-ndk-host option to specify one
"
-platform linux-g++-64
Я параноик о том, добавит ли или нет configure флаг -m64
или что-то еще, когда он будет работать над моей магией для меня
Кроме этой разницы, процедура Натана, казалось, работала как шарм. Мое местное окружение сейчас (спасибо за советы, господин Осман: -)