首页 > 解决方案 > Haskell“堆栈”如何与 Windows 上的“msys2”交互?

问题描述

我正在开发一个在 Windows 下运行的 Haskell 程序。它使用了一些国外的mingw库。我有一个全局安装C:\msys64,我可以使用 plain 进行管理pacman。但是我想确保我在安装文件中打包的 DLL 与 GHC 链接的 DLL 相同。

Stack 文档中的这个页面说,在 Windows Stack 上安装了msys2,您可以通过执行以下操作来管理此安装:

stack exec -- pacman -S mingw64/mingw-w64-x86_64-icu

查看我的AppData\Local\Programs\stack文件夹,我可以看到各种 GHC 安装,每个都有自己的mingw文件夹。还有一个msys2-20180531文件夹似乎对我的 Stack 安装来说是全局的:它位于 GHC 安装的旁边,而不是在里面。在运行stack exec上面的行之后,我能够在后面的 msys2 安装中找到 ICU 库。我的C:\msys64安装中也有相同库的副本,其中还包含我的程序使用的其他外部库。

当我运行时,GHC 将获取 ICU 库的哪个副本stack install?它会先搜索 Stack 安装,然后再C:\msys64安装吗?

标签: haskellmsys2

解决方案


推荐阅读