2012-03-20 13 views
1

を宣言されていない、次のエラーが発生します。Android用ICUをコンパイルしながら 'ICU_Utilityは'

/home/tim/icu49/icu/source/i18n/strmatch.cpp: In member function 'virtual icu_49::UnicodeString& icu_49::StringMatcher::toPattern(icu_49::UnicodeString&, UBool) const': 
/home/tim/icu49/icu/source/i18n/strmatch.cpp:166: error: 'ICU_Utility' has not been declared 
/home/tim/icu49/icu/source/i18n/strmatch.cpp:168: error: 'ICU_Utility' has not been declared 
/home/tim/icu49/icu/source/i18n/strmatch.cpp:176: error: 'ICU_Utility' has not been declared 
/home/tim/icu49/icu/source/i18n/strmatch.cpp: In member function 'virtual icu_49::UnicodeString& icu_49::StringMatcher::toReplacerPattern(icu_49::UnicodeString&, UBool) const': 
/home/tim/icu49/icu/source/i18n/strmatch.cpp:243: error: 'ICU_Utility' has not been declared 
make[1]: *** [strmatch.ao] Error 1 
make[1]: Leaving directory `/home/tim/icu49/icu-android/i18n' 
make: *** [all-recursive] Error 2 

を更新。ハックとして、これは-DUCONFIG_NO_TRANSLITERATION(基本的に問題のブロックを無視する)で解決できます。これはあなたに過去の 'strmatch.cpp'を渡しますが、エラーはdbgutil.cpp:143と145に再び現れます。-DUCONFIG_NO_FORMATTING(別の機能を失う...)を修正する(次号:機能icu_49::IcuToolErrorCode::~IcuToolErrorCode()': toolutil.cpp:(.text+0x400): undefined reference to __cxa_end_cleanup ')

更新2。これは非常に奇妙です。私は設定の変更を取り消しました。 i18n/strmatch.cppには、 "util.h"が含まれています。しかし、ICU_Utilityが定義されていない理由は、決して呼び出されないようです。 ( "util.h"はicu/source/commonにあります)。興味深いことに、#include "util.h"の代わりに#include "../common/util.h"を使用すると動作します。もちろん

_util.hにutil.hからアンドロイド-Xのバージョンの名前を変更する

[email protected]:~/icu49$ find android-ndk-r7b/ -name util.h 
android-ndk-r7b/platforms/android-4/arch-x86/usr/include/util.h 
android-ndk-r7b/platforms/android-4/arch-arm/usr/include/util.h 
android-ndk-r7b/platforms/android-8/arch-x86/usr/include/util.h 
android-ndk-r7b/platforms/android-8/arch-arm/usr/include/util.h 
android-ndk-r7b/platforms/android-14/arch-x86/usr/include/util.h 
android-ndk-r7b/platforms/android-14/arch-arm/usr/include/util.h 
android-ndk-r7b/platforms/android-3/arch-x86/usr/include/util.h 
android-ndk-r7b/platforms/android-3/arch-arm/usr/include/util.h 
android-ndk-r7b/platforms/android-5/arch-x86/usr/include/util.h 
android-ndk-r7b/platforms/android-5/arch-arm/usr/include/util.h 
android-ndk-r7b/platforms/android-9/arch-x86/usr/include/util.h 
android-ndk-r7b/platforms/android-9/arch-arm/usr/include/util.h 

答えて

2

は、この問題への迅速な解決を提供するので、これは今、理にかなっています。

関連する問題