首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译用于Android的ICU:__timezone‘未在此作用域中声明

编译用于Android的ICU:__timezone‘未在此作用域中声明
EN

Stack Overflow用户
提问于 2012-03-20 10:15:00
回答 2查看 1.3K关注 0票数 0

在尝试使用安卓NDKv7b编译ICU49时,我遇到了以下问题:

代码语言:javascript
复制
/home/tim/icu49/icu/source/common/putil.cpp: In function 'int32_t uprv_timezone_49()':
/home/tim/icu49/icu/source/common/putil.cpp:637: error: '__timezone' was not declared in this scope
/home/tim/icu49/icu/source/common/putil.cpp: At global scope:
/home/tim/icu49/icu/source/common/putil.cpp:2253: error: expected constructor, destructor, or type conversion before '*' token

使用

代码语言:javascript
复制
export ANDROIDVER=8
export AR=/usr/bin/ar
export BASE=/home/tim/icu49
export HOST_ICU=$BASE/icu
export ICU_CROSS_BUILD=$BASE/icu-linux
export NDK_ROOT=$BASE/android-ndk-r7b
export CPPFLAGS="-I$NDK_ROOT/platforms/android-$ANDROIDVER/arch-arm/usr/include/ -O3 -fno-short-wchar -DU_USING_ICU_NAMESPACE=0 -DU_GNUC_UTF16_STRING=0 -fno-short-enums -DU_HAVE_NL_LANGINFO_CODESET=0 -D__STDC_INT64__"
export LDFLAGS="-lc -Wl,-rpath-link=$NDK_ROOT/platforms/android-$ANDROIDVER/arch-arm/usr/lib/ -L$NDK_ROOT/platforms/android-$ANDROIDVER/arch-arm/usr/lib/"

export OLDPATH=$PATH
export PATH=/home/tim/icu49/api$ANDROIDVER/bin:$PATH

$NDK_ROOT/build/tools/make-standalone-toolchain.sh --platform=android-$ANDROIDVER --install-dir=$BASE/api$ANDROIDVER

$HOST_ICU/source/configure --with-cross-build=$ICU_CROSS_BUILD --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-linux-androideabi

任何建议都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-21 05:38:55

针对这个特定问题的Here is a patch (使用ICU4.8制作,但应该会给你一些启发)。

还有,see the discussion here.

票数 1
EN

Stack Overflow用户

发布于 2012-03-20 18:33:13

修复了在CPPFLAGS中使用-DU_TIMEZONE=0的问题。但不清楚这是否是正确的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9780553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档