Как построить Qt5 для Android?

У меня есть сервер с Ubuntu 12.04 LTS.

Я хочу, чтобы сервер использовал здание Qt5 для платформы Android ARMv6. Как делать это на безголовом сервере?

Ответ 1

Ниже описаны шаги, необходимые для компиляции 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.


Литература:

Ответ 2

Я не хочу отвечать на другой ответ с ответом, но это мой первый пост:-( и я думаю, что это мешает мне опубликовать это в комментарии. (так что считайте это ссылкой на ответ, а не ответ на него) Ответ Натана, написанный выше, не работал точно для меня.

Моя строка конфигурации больше похожа на:

./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 или что-то еще, когда он будет работать над моей магией для меня

Кроме этой разницы, процедура Натана, казалось, работала как шарм. Мое местное окружение сейчас (спасибо за советы, господин Осман: -)