This project has been on hold since 2016
All the data on this site is still available (and will stay available) but not up-to-date anymore
You might like to check Dmitry Moskalchuk's portfolio for his other projects
ВНИМАНИЕ!!! Вы находитесь на странице устаревшего выпуска CrystaX NDK.
Новый CrystaX NDK 10.3.2 доступен для скачивания, предлагая многочисленные исправления и улучшения; скорее всего, вам стоило бы попробовать новую версию вместо устаревшей.

Описание

Здесь выложены дистрибутивы Android NDK r4b, пересобранные мной из официальных исходников. Добавлена поддержка C++ exceptions, RTTI и Standard C++ Library (в частности, STL). Изменения небольшие, вы можете увидеть их в предлагаемом патче

Update: Готова новая версия android-ndk-r4-crystax-2! Список исправленных проблем:

Update 2: Готова новая версия android-ndk-r4-crystax-3! Включает важное исправление:

Update 3: Готова новая версия android-ndk-r4-crystax-4! Список исправленных проблем:

Лицензия

Содержимое CrystaX NDK покрывается различными open-source лицензиями. Более детально можно узнать, заглянув в каждый интересующий файл и прочитав copyright disclaimer.

Обратите внимание, что CrystaX NDK дистрибутивы также содержат уже собранные двоичные файлы - компилятор, линкер и т.д. Их исходные коды доступны на GitHub-е (вы можете использовать сборочный скрипт, чтобы скачать их автоматически).

GCC и сопутствующие инструменты (GDB, binutils и т.д.) покрываются либо GNU General Public License (GPL), либо GNU Lesser General Public License (LGPL). Вы можете найти более детальную информацию о них в файлах COPYING и COPYING.LIB, находящихся в каталогах $NDK/toolchains/$tc/prebuilt/$system.

Набор инструментов LLVM/Clang покрывается LLVM "BSD" лицензией.

По существу, правила лицензирования такие же, как у Android NDK от Google - т.е. разрешается любое использование, как коммерческое, так и некоммерческое. Единственное добавление к этим правилам - это CrystaX-специфичный код, который покрывается разрешительной 'BSD 2-clause' лицензией.

Скачать

Файл Размер SHA256
android-ndk-r4-windows-crystax-4.zip 141.917 MB 664d3b53fdde47c...100e63773675f2
android-ndk-r4-darwin-x86-crystax-4.tar.bz2 121.305 MB 00a63aecf86fcb7...ba13eaa3c9722a
android-ndk-r4-linux-x86-crystax-4.tar.bz2 115.871 MB dc399e8a8d6dbe0...afd10068b0765a

Инструкции по сборке

Вы также можете собрать дистрибутив самостоятельно, если вас не устраивают по каким-либо причинам те версии, что собрал я. Для этого следуйте инструкциям ниже.

Необходимое ПО:

  • Для Windows, последняя версия Cygwin
  • GNU Make 3.81 или выше
  • GNU Makeinfo (наиболее свежая версия)
  • GIT (для скачивания исходников android toolchain)
  • Наиболее свежая версия GNU Libtool (automake, autoconf и т.д.)
  • GNU C/C++ 3.x или выше (для Windows, это должна быть именно 3.x, не 4.x)
  • Библиотека ncurses (в случае Cygwin это должен быть пакет ncurses-devel)
  • GNU flex (наиболее свежая версия)
  • Утилита patch. Скорее всего она уже установлена если вы используете Linux или Mac OS X; в Cygwin она должна быть установлена отдельно

Инструкции

  • Скачайте мой патч и сохраните его где-нибудь
  • Скачайте android-ndk-r4b для вашей платформы с официального сайта
  • Распакуйте полученный архив и перейдите в каталог android-ndk-r4b
  • Для пользователей Windows 7 и Vista: исправьте права только что распакованной папки. Наберите в командной строке:
    cmd /c "icacls . /grant Everyone:(F) /T"
  • Примените мой патч:
    patch -p1 <path-to-my-patch
  • Установите переменную окружения ANDROID_NDK_ROOT так, чтобы она указывала на текущий каталог:
    export ANDROID_NDK_ROOT=`pwd`
  • Для Windows пользователей: установите переменную окружения CC так, чтобы она указывала на GCC 3:
    export CC=gcc-3
  • Для Mac пользователей: если вы планируете использовать собранный пакет на предыдущих версиях Mac OS X (например, вы делаете сборку на Snow Leopard но планируете использовать ее также и на Leopard), необходимо выставить правильные переменные окружения CC и LDFLAGS. Если вам это не нужно, просто пропустите этот пункт. Иначе, наберите в терминале следующие строки:
    CC="gcc -isystem /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4"
    LDFLAGS="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
    export CC LDFLAGS
          
    Это позволить собрать бинарные файлы, которые будут работать на Tiger и более поздних версиях; смените SDK на другой если минимальная версия должна быть не Tiger.
  • Скачайте исходники android toolchain:
    ./build/tools/download-toolchain-sources.sh --release=myrelease --package --over-http --verbose --for-date=2010-07-15
    Это может занять много времени в зависимости от скорости вашей сети. В конце концов, эта команда скачает исходники и запакует их в /tmp/android-ndk-toolchain-myrelease.tar.bz2
  • Запустите команду сборки:
    ./build/tools/rebuild-all-prebuilt.sh --verbose --package --toolchain-src-pkg=/tmp/android-ndk-toolchain-myrelease.tar.bz2
    Эта команда распакует исходники android toolchain (включая binutils, gcc и gdb), пропатчит их и запустит компиляцию. Это может занять довольно много времени в зависимости от вашей конфигурации, поэтому будьте терпеливы.
  • В конце, когда команда сборки завершится, она напечатает имя архива с собранными инструментами (что-то типа /tmp/android-ndk-prebuilt-20100716-linux-x86.tar.bz2, фактическое имя будет зависеть от текущей даты). Запустите команду:
    rm -Rf ./build/prebuilt
    tar xjvf /tmp/android-ndk-prebuilt-20100716-linux-x86.tar.bz2
    
  • Теперь вы можете попробовать протестировать вашу сборку. Соберите приложение hello-jni по стандартной инструкции (я модифицировал его так, что теперь там используется STL и исключения) и запустите на эмуляторе/устройстве
  • Наслаждайтесь!

Back
Home
Map
Back
Home
Map

Наши авторы: