2015-11-20 53 views
0

成功运行交叉编译GHC失败缺少的iconv

./configure --target=arm-linux-androideabi --with-gcc=arm-linux-androideabi-gcc 

然后使失败。

checking value of ENOTSUP... 95 
checking value of SIGINT... 2 
checking value of O_BINARY... 0 
checking for library containing iconv... no 
configure: error: iconv is required on non-Windows platforms 
make[1]: *** [libraries/base/dist-install/package-data.mk] Error 1 
make: *** [all] Error 2 

尝试安装libiconv的,并确保

[email protected]:~/workspace/ghc$ ls /usr/local/lib/ 
charset.alias  libiconv.la  libsodium.la    python2.7 
libcharset.a   libiconv.so  libsodium.so    python3.4 
libcharset.la  libiconv.so.2  libsodium.so.13   site_ruby 
libcharset.so  libiconv.so.2.5.0 libsodium.so.13.0.2  x86_64-linux-ghc-7.8.3 
libcharset.so.1  libiconv.so.2.5.1 pkgconfig 
libcharset.so.1.0.0 libsodium.a  preloadable_libiconv.so 

但后来我跑做,问题依旧。

指定的iconv的源位置还没有作品(添加它在MK/build.mk)

libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-includes=/home/dt-ubt/workspace/ghc/iconv/include 
libraries/base_CONFIGURE_OPTS += --configure-option=--with-iconv-libraries=/home/dt-ubt/workspace/ghc/iconv/lib 

回答

1

您可能需要一个iconv匹配arm-linux-androideabi。推测:如果GHC将iconv链接到已编译的Haskell二进制文件中,那么iconv的该副本必须与--target体系结构匹配。

+0

ghc在哪里找到相应的libiconv.so,它是如何检查目标的? – doofin

+0

@doofin由于NDK缺少iconv(计划包含在未来版本中),您应该从头开始构建它,或者链接到支持该接口的现有库。目前,我正在尝试完成同样的事情。将发布更新。 – minmaxavg

相关问题