我一直在ghci环境中使用hMatrix包,一切都很好(例如,我可以导入Numeric.LinearAlgebra.HMatrix)。但是,当我试图在脚本中导入和使用相同的内容时,所有内容都会中断(为了可读性,我稍微截断了错误消息(较长的_base_GHCiIO-错误列表))。例如,文件中的这两行将创建下面的错误。有人知道原因是什么吗?我在上。
import Numeric.LinearAlgebra.HMatrix
main = print ((2><1) [1.0::Float,1.0])
$ ghc 2_12.hs
[1 of 1] Compiling Main ( 2_12.hs, 2_12.o )
Linking 2_12 ...
Undefined symbols for architecture x86_64:
"_iconv", referenced from:
_hs_iconv in libHSbase-4.7.0.2.a(iconv.o)
(maybe you meant: _hs_iconv,
_base_GHCziIOziEncodingziIconv_iconvEncoding9_info ,
_base_GHCziIOziEncodingziIconv_iconvEncoding8_info,
_base_GHCziIOziEncodingziIconv_iconvEncoding9_closure ,
_hs_iconv_open , _hs_iconv_close ,
"_iconv_close", referenced from:
_hs_iconv_close in libHSbase-4.7.0.2.a(iconv.o)
(maybe you meant: _hs_iconv_close)
"_iconv_open", referenced from:
_hs_iconv_open in libHSbase-4.7.0.2.a(iconv.o)
(maybe you meant: _hs_iconv_open)
"_locale_charset", referenced from:
_localeEncoding in libHSbase-4.7.0.2.a(PrelIOUtils.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)发布于 2015-09-15 11:29:49
您可能在MacPorts中安装了libiconv。MacPorts libiconv中的定义与definitions中的定义(令人讨厌)有所不同。这里是一些更多的解释。
我也遇到了同样的问题,我的解决方案是将-- OS dirs=/usr/lib参数传递给阴谋集团(/usr/lib是OS X保持libiconv的地方)。您可以在编译前使用cabal configure --extra-lib-dir=/usr/lib,也很可能也可以使用cabal install --extra-lib-dir=/usr/lib。您还可以将额外的lib-dirs语句添加到您的阴谋文件中。/usr/lib已经总是包含在其中,但是通常首先搜索MacPorts库目录:通过添加--extra dirs参数,确保MacPorts在搜索MacPorts库目录之前搜索/usr/lib。
https://stackoverflow.com/questions/32584505
复制相似问题