如何在Windows上使用text-icu?

时间:2013-04-21 03:38:41

标签: windows haskell

我能够无错误地安装text-icu。 (我使用--extra-lib-dirs--extra-include-dirs指向icu4c二进制分发中的libinclude目录。)

我还可以通过text-icu构建以下使用ghc --make icu.hs的简单程序:

-- icu.hs
import Data.Text.ICU
main = print $ Locale "tr-TR"

在这两个步骤中都没有错误或警告。但是当我尝试运行已编译的程序icu.exe时,我根本没有输出。我希望得到Locale "tr-TR"的一行,但我什么都没得到 - 甚至没有错误或警告。如果我尝试

,情况仍然如此
main = do
  print $ Locale "tr-TR"
  print "Done"

所以使用text-icu的东西似乎会导致程序无声地失败。 echo $?会产生False

是否有人在Windows上启动并运行text-icu?你能告诉我我做错了什么吗?

4 个答案:

答案 0 :(得分:9)

Stack在Windows上包含msys2的副本,其中包含pacman包管理器,因此我们可以运行:

stack exec -- pacman -Sy mingw64/mingw-w64-x86_64-icu
stack build text-icu

答案 1 :(得分:5)

我通过这样做来管理它:

毕竟,我可以在ghci中规范化字符串。

答案 2 :(得分:1)

这就是Windows对缺少的静态依赖性做出反应的方式。当操作系统启动进程时,它会查找静态依赖项。如果缺少一个,则程序不会启动。

使用depends.exe查找缺少的导入。这可能是一个丢失的dll,也可能是错误的版本。

取决于是否可用  1. Visual Studio  2. Microsoft Platform SDK  3.其他微软软件包  4. http://www.dependencywalker.com

在追踪这种情况下发生的事情时,这是非常必不可少的。

答案 3 :(得分:0)

你应该检查是否有一些DLL缺少cygcheck.check路径和windows环境变量也是正确的。或者尝试按照haskell程序重新安装。

http://www.haskell.org/haskellwiki/Windows#Tools_for_compilation

祝你好运