Ответ 1
Мы используем ICU в NDK. Следуйте инструкциям в инструкциях по сборке ICU, и все будет в порядке. В основном у вас будет родной каталог ICU (например, Windows или Linux), ICU Cygwin (если он используется) и еще один для ICU Android (ARM). Звучит безумно, но он работает!
Вот шаги для построения под Cygwin. Я использую "CrystaX" NDK r4, но он также должен строиться с помощью NDK. ICU версии 4.4, но также работал с предыдущими версиями.
-
Патчи:
- source/configure (http://pastebin.com/kDEbYdMe)
- source/Makefile.in(http://pastebin.com/785Lnsb5)
- source/config/(копировать mh-linux в mh-unknown)
- source/tools/pkgdata/pkgdata.cpp(http://pastebin.com/ZiRexjkp)
-
Создайте свою версию хоста ICU (например, Windows) в соответствии с нормальным. (Мы будем называть это $HOST_ICU)
-
Постройте ICU Cygwin:
- Создайте каталог icu-cygwin (мы назовем это $ICU_CROSS_BUILD)
- Из каталога icu-cygwin запустите '$ HOST_ICU/source/runConfigureICU Cygwin'
- сделать
-
Постройте версию NUK для ICU:
- Создайте каталог icu-android
- От icu-android dir: '$ HOST_ICU/source/configure' с соответствующими параметрами командной строки. --with-cross-build = $ICU_CROSS_BUILD и --host = arm-eabi не требуется.
- сделать
Я использую что-то вроде этого для переданного (для шага # 4) CPPFLAGS/CXXFLAGS/CFLAGS:
-I$NDK_ROOT/build/platforms/android-8/arch-arm/usr/include/ -O3 -fno-short-wchar -DU_USING_ICU_NAMESPACE=0 -DU_GNUC_UTF16_STRING=0 -fno-short-enums -nostdlib
И для LDFLAGS:
-lc -Wl,-rpath-link=$NDK_ROOT/build/platforms/android-8/arch-arm/usr/lib/ -L$NDK_ROOT/build/platforms/android-8/arch-arm/usr/lib/
И дополнительные параметры настройки:
--enable-extras=no --enable-strict=no --enable-static --enable-shared=no --enable-tests=no --enable-samples=no --enable-dyload=no --enable-tools=no --host=arm-eabi --with-data-packaging=archive
Я не делал этого вручную какое-то время, в настоящее время это все в пользовательской сборке на основе Python script. Если вы столкнетесь с какими-либо другими проблемами, я, вероятно, скажу вам, в чем проблема.
Удачи!