Androidの最近のブログ記事

Android用に ICUを Windowsで作成しています。

unicode support in android ndk Androidでglibc(6) ICU を参考にしてみました。

必要なもの

  • ICUのソース(今回は 4.8を使います)
  • Android NDK (NDKはr5を使います)
  • cygwin

手順

AndroidNDKのインストール先を C:\android-ndk-r5 とします。

  1. C:\android-ndk-r5\toolchains\arm-eabi-4.4.0\prebuilt\windows\binにパスを張ります。
  2. Cygwin用のビルドディレクトリを作成します。
  3. Cygwin用にICUをビルドします。
    >sh (ICUのディレクトリ)/source/runConfigureICU Cygwin
    > make
    でオーケー
  4. Android用のビルドディレクトリを作成します。
  5. 環境変数の設定をします
    CPP=/cygdrive/c/android-ndk-r5/toolchains/arm-eabi-4.4.0/prebuilt/windows/bin/arm-eabi-cpp.exe

    CPPFLAGS=-Ic:/android-ndk-r5/platforms/android-8/arch-arm/usr/include/ -DU_USING_ICU_NAMESPACE=0 -DU_GNUC_UTF16_STRING=0 -D__STDC_INT64__

    CFLAGS=-O3 -fno-short-wchar  -fno-short-enums -nostdlib 

    CXXFLAGS=-Ic:/android-ndk-r5/sources/cxx-stl/gnu-libstdc++/include -Ic:/android-ndk-r5/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include
     
  6. Android用のディレクトリで (ICUのディレクトリ)/source/configure を実行します。その時、以下のオプションを指定します。
    --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 --with-cross-build=(2.で作成したCygwin用のディレクトリ)
  7. makeします。
  8. 「ucln_in.d:1: *** multiple target patterns.  Stop.」というエラーが出た場合は以下のコマンドを cygwinで実行します。
     for v in *.d
       do
         awk -f /cygdrive/c/android-ndk-r5/build/awk/convert-deps-to-cygwin.awk $v > $v.new
       mv $v.new $v
     done
  9. c:/android-ndk-r5/platforms/android-8/arch-arm/usr/include/にある util.hは (ICU)/source/common/util.hとバッティングするので名前を変更する。
デル株式会社

検索

カスタム検索

このアーカイブについて

このページには、過去に書かれたブログ記事のうちAndroidカテゴリに属しているものが含まれています。

次のカテゴリはアニメです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。