【问题标题】:cross-compile ghc failed missing iconv交叉编译 ghc 失败缺少 iconv
【发布时间】:2015-11-20 08:32:33
【问题描述】:

成功运行

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

然后make失败。

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,并确保

dt-ubt@dt-ubt:~/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

然后我运行 make,问题仍然存在。

指定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

【问题讨论】:

    标签: haskell ghc


    【解决方案1】:

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

    【讨论】:

    • ghc在哪里找到对应的libiconv.so,如何检查目标?
    • @doofin 由于 NDK 还缺少 iconv(计划在未来的版本中包含),您应该从头开始构建它,或者链接到支持该接口的现有库中。目前,我正在做与您尝试实现的完全相同的事情。将发布更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多