如何为Android NDK安装libiconv?

4

有人能教我或指导我如何在Android上安装libiconv吗?我已经搜索了3天,但找不到教程或指南。


1
Java库提供了您可能需要的所有字符集转换服务。只是这样说。然而,如果要移植现有的基于iconv的代码... - Seva Alekseyev
我认为这只是一个构建Android源代码的问题。我怀疑是否有一个专门针对Android的版本可以直接“安装”。获取源代码,创建一个Android.mk文件来编译源代码(查看libiconv提供的makefile文件,以便知道要编译哪些文件),然后使用ndk-build进行编译。 - Samuel
其实,我在尝试在Android NDK中构建和编译一些C++文件,但是出现了一个错误:“未定义的符号libiconv_open、libiconv和libiconv_close”,这意味着某些C++文件使用了iconv,因此我想将libiconv安装/编译到Android NDK中,以便我的文件能够成功构建。你能提供一些建议吗?或者我是否对错误解决方案有误? - Coola
@Coola,将libiconv添加到您正在构建的项目中可能会更容易,而不是将其构建为单独的库。不过,请查看我的回答中的链接。它提供了您需要添加到现有makefile的内容,并且还显示了您需要添加到项目中的必要文件。 - Samuel
好的,谢谢Samuel,我会看看我能做什么。 - Coola
请参考这篇帖子,它似乎是你的答案: http://stackoverflow.com/questions/9053702/building-libiconv-fails-with-the-android-standalone-toolchain/10051212#10051212 - binhgreat
2个回答

5
抓取libiconv源文件,并制作一个Android.mk makefile。 参考此网站的预先编写的libiconv和Android makefile:(点击此处)。 一旦你有了Android.mk文件,就可以使用ndk-build脚本进行构建。

0

我猜你在Android上不需要iconv。Android应该是全面支持UTF-8的,因此不需要字符转换。也许有些情况下,你想让你的应用程序编辑各种字符集的外国文件,这是我能想到的唯一一个Android应用程序需要iconv的原因。

因此,与其尝试包含libiconv,不如改变你正在使用的代码,使其在Android上运行时不需要它。


可以理解,这个问题表述得不太清楚。每当你使用NDK进行交叉编译,并且使用了需要iconv库的代码时,你就会问自己类似这样的问题。 - Cameron Lowell Palmer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接