2012-01-13 6 views
3

とのsqliteを構築するとき、私は私のAndroid.mkに私は次のようしている、アンドロイドNDKのICUサポート付きのsqliteを構築しようとしている:
のAndroid NDK - エラーICUサポート

SQLITE3_INCLUDE_DIRS := -I/home_folder/dev/platform_external_icu4c/common -I/home_folder/dev/platform_external_icu4c/i18n 

しかし、私がしようとすると、コンパイル私はundefined referenceエラーの束ました:あなたは、ポストショー

 

./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuNext': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125631: undefined reference to `ubrk_current_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125632: undefined reference to `ubrk_next_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125640: undefined reference to `u_isspace_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125640: undefined reference to `u_isspace_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125660: undefined reference to `u_strToUTF8_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125639: undefined reference to `utf8_nextCharSafeBody_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuClose': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125605: undefined reference to `ubrk_close_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuLikeCompare': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125075: undefined reference to `u_foldCase_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125076: undefined reference to `u_foldCase_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125052: undefined reference to `utf8_countTrailBytes_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuOpen': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125573: undefined reference to `u_foldCase_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125588: undefined reference to `ubrk_open_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125582: undefined reference to `utf8_nextCharSafeBody_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125595: undefined reference to `ubrk_first_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125570: undefined reference to `utf8_nextCharSafeBody_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuLikeFunc': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125126: undefined reference to `utf8_nextCharSafeBody_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuCollationDel': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125312: undefined reference to `ucol_close_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuFunctionError': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125152: undefined reference to `u_errorName_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuLoadCollation': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125371: undefined reference to `ucol_open_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125382: undefined reference to `ucol_close_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuCollationColl': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125328: undefined reference to `ucol_strcoll_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuCaseFunc16': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125293: undefined reference to `u_strToUpper_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125295: undefined reference to `u_strToLower_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuRegexpFunc': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125216: undefined reference to `uregex_setText_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125223: undefined reference to `uregex_matches_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125234: undefined reference to `uregex_setText_46' 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125204: undefined reference to `uregex_open_46' 
./obj/local/armeabi/objs/sqlite3_jni/sqlite3secure.o: In function `icuRegexpDelete': 
/home_folder/workspace/ndk-sqlite/jni/sqlite3.c:125163: undefined reference to `uregex_close_46' 

 

答えて

2

だなlibicuuc.aなど(.A)ファイルのディレクトリが含まれていますが、実際のICUのlibにリンクされていますか? ICUの場合は.mk、LOCAL_STATIC_LIBRARIES経由で直接(またはLOCAL_LDFLAGS経由で直接)、APP_MODULES経由でApplication.mkに指定する必要があります。

APP_MODULESの最初の方法が優先されます。

+0

ICUは既にAndroidで利用可能ですか? – tofutim

+0

ICUのバージョンがAndroidにインストールされています。しかし、いくつかの問題があります:1)特定のデバイスのバージョンに依存する必要があります。また、2)ICUを強力にする組み込みデータ(コンバージョンなど)もデバイスごとに異なります。 – NuSkooler

+0

デバイス間でICUビルトインデータのチャートが存在するかどうか知っていますか?頼りにするのは危険です。私はBreak Iteratorsが必要です。 – tofutim

関連する問題