在windows下基于iconv构建Haskell程序

在windows下基于iconv构建Haskell程序,windows,haskell,linker,libraries,building,Windows,Haskell,Linker,Libraries,Building,我有一个项目取决于iconv,因为我需要与cp1251代码页。问题项目的最小实现。我已经从安装了iconv,并成功地安装了haskell软件包“iconv”,如下所示 cabal install iconv --extra-include-dirs="C:\GnuWin32\include" --extra-lib-dirs="C:\GnuWin32\lib" 软件包iconv已正确安装,但依赖于它的项目链接失败,下面是发生的情况 c:\iconvsmpl>cabal configure

我有一个项目取决于iconv,因为我需要与cp1251代码页。问题项目的最小实现。我已经从安装了iconv,并成功地安装了haskell软件包“iconv”,如下所示

cabal install iconv --extra-include-dirs="C:\GnuWin32\include" --extra-lib-dirs="C:\GnuWin32\lib"
软件包iconv已正确安装,但依赖于它的项目链接失败,下面是发生的情况

c:\iconvsmpl>cabal configure --extra-include-dirs="C:\GnuWin32\include" --extra-
lib-dirs="C:\GnuWin32\lib"
Warning: The package list for 'hackage.haskell.org' is 16 days old.
Run 'cabal update' to get the latest list of available packages.
Resolving dependencies...
Configuring iconvsmpl-0.1.0.0...
Warning: The 'license-file' field refers to the file 'LICENSE' which does not
exist.

c:\iconvsmpl>cabal build
Building iconvsmpl-0.1.0.0...
Preprocessing executable 'iconvsmpl' for iconvsmpl-0.1.0.0...
[1 of 1] Compiling Main             ( iconvsmpl.hs, dist\build\iconvsmpl\iconvsm
pl-tmp\Main.o )
Linking dist\build\iconvsmpl\iconvsmpl.exe ...
C:\Users\admin\AppData\Roaming\cabal\iconv-0.4.1.1\ghc-7.6.3/libHSiconv-0.4.1.1.
a(hsiconv.o):hsiconv.c:(.text+0x7): undefined reference to `_imp__libiconv_open'

C:\Users\admin\AppData\Roaming\cabal\iconv-0.4.1.1\ghc-7.6.3/libHSiconv-0.4.1.1.
a(hsiconv.o):hsiconv.c:(.text+0x17): undefined reference to `_imp__libiconv'
C:\Users\admin\AppData\Roaming\cabal\iconv-0.4.1.1\ghc-7.6.3/libHSiconv-0.4.1.1.
a(hsiconv.o):hsiconv.c:(.text+0x27): undefined reference to `_imp__libiconv_clos
e'
collect2: ld returned 1 exit status

c:\iconvsmpl>
为什么安装并链接了iconv,但无法链接ICONVSML。如何在Windows下构建它?在Windows for Haskell下,是否有其他方法可以使用外国编码

对于windows来说,拥有可执行文件是非常可取的。在Linux下构建和工作包

Haskell Platform的版本为2013.2.0.0

在Windows上安装时,需要修改软件包的.cabal文件。删除条件检查,使
额外库
字段始终适用。更新
include dirs
extra lib dirs
字段,如下所示:

include-dirs:    cbits, "c:\\GnuWin32\\include"
extra-lib-dirs:  "c:\\GnuWin32\\lib"

我只是猜测,但你试过用吗?这是一个包含msys和mingw的libiconv构建。如果不使用haskell平台附带的mingw,gnuwin32构建往往无法正常运行(请参阅)。这是有帮助的,大概是因为“\\”