【发布时间】:2018-06-16 02:59:33
【问题描述】:
我需要 iPhone 的 ICU 库。我试图从源代码构建它,但是,我得到了这个错误:
clang++ ... /Users/petr/Development/icu-cross-compile-master/icu-60-2/source/tools/pkgdata/pkgdata.cpp
/Users/petr/Development/icu-cross-compile-master/icu-60-2/source/tools/pkgdata/pkgdata.cpp:544:18: error: call to unavailable function 'system': not available on iOS
int result = system(cmd);
^~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk/usr/include/stdlib.h:195:6: note: candidate function has been explicitly made unavailable
int system(const char *) __DARWIN_ALIAS_C(system);
sh ${ICU_SOURCE}/configure --host=arm-apple-darwin --with-cross-build=${PREBUILD_DIR} ${PREFIX}
我的PREFIX 配置如下:
--enable-extras=yes
--enable-tools=yes
--enable-icuio=yes
--enable-strict=no
--enable-static
--enable-shared=no
--enable-tests=yes
--disable-renaming
--enable-samples=no
--enable-dyload=no
--with-data-packaging=static
或者有没有其他方法,如何生成libicudata.a?类似的构建脚本适用于 Android、Mac 和 Win。只有 iPhone 有问题。
【问题讨论】:
-
你真的需要构建工具吗?它们实际上是一堆命令行工具。如果您在没有工具的情况下构建 ICU,它也可以在无需修补的情况下构建。