【发布时间】:2012-01-23 13:49:18
【问题描述】:
我是一名 Haskell 爱好者,一直坚持在 Windows 上编译我的小 Haskell 程序。我的程序使用了iconv 包,它又使用了用c/c++ 编写的外部库。为了让事情顺利进行,我有:
- 运行GNU-Iconv setup 并添加其“bin”文件夹,其中
'libiconv-2.dll' 和 'libiconv2.dll' 位于
PATH变量。 - 提取并复制“LibIconv 开发人员文件”到“mingw”文件夹 Haskell 平台位置。
- 然后 'cabal install iconv' 编译,我有 cabal 包 已安装。
现在,当我尝试在 Leksah 中构建我的模块时,我从“GHC”收到以下消息:
Building norms-parser-0.0.1...
Linking dist\build\norms-parser\norms-parser.exe ...
C:\Documents and Settings\kdv\Application Data\cabal\iconv-0.4.1.0\ghc-7.0.4/libHSiconv-0.4.1.0.a(hsiconv.o):hsiconv.c:(.text+0x7): undefined reference to `_imp__libiconv_open'
C:\Documents and Settings\kdv\Application Data\cabal\iconv-0.4.1.0\ghc-7.0.4/libHSiconv-0.4.1.0.a(hsiconv.o):hsiconv.c:(.text+0x17): undefined reference to `_imp__libiconv'
C:\Documents and Settings\kdv\Application Data\cabal\iconv-0.4.1.0\ghc-7.0.4/libHSiconv-0.4.1.0.a(hsiconv.o):hsiconv.c:(.text+0x27): undefined reference to `_imp__libiconv_close'
collect2: ld returned 1 exit status
使用“GHCi”,我也面临一个问题:
ghc.exe: unable to load package `iconv-0.4.1.0'
ghc.exe: C:\Documents and Settings\kdv\Application Data\cabal\iconv-0.4.1.0\ghc- 7.0.4\HSiconv-0.4.1.0.o: unknown symbol `__imp__libiconv_open'
我认为可能的解决方案是将 c/c++ 头文件正确设置为“mingw”文件夹并将 PATH 变量设置为“lib”文件,但我对此知之甚少,因此将不胜感激.
【问题讨论】:
-
这是 libiconv 的老问题。也许这个帖子会有所帮助:mail-archive.com/gnuwin32-users@lists.sourceforge.net/…
-
@Ivory -- 如果你找到了答案,你应该发布并接受它。
-
您找到解决此问题的方法了吗?我在使用 GHC 7.6.3 时遇到了类似的问题,但我认为这是不兼容的问题。