Haskell 哈斯凯尔是怎么做到的;堆栈";与“互动”;msys2“;在窗户上?
我正在开发一个在Windows下运行的Haskell程序。它使用了许多外国图书馆。我在Haskell 哈斯凯尔是怎么做到的;堆栈";与“互动”;msys2“;在窗户上?,haskell,msys2,Haskell,Msys2,我正在开发一个在Windows下运行的Haskell程序。它使用了许多外国图书馆。我在C:\msys64中有一个全局安装,我可以使用普通的pacman来管理它。但是,我希望确保安装文件中的DLL包与GHC链接的DLL相同 在Stack文档中,说明在Windows Stack上安装了,您可以通过执行以下操作来管理此安装: 堆栈执行器--pacman-S mingw64/mingw-w64-x86_64-icu 通过查看我的AppData\Local\Programs\stack文件夹,我可以看到各
C:\msys64
中有一个全局安装,我可以使用普通的pacman
来管理它。但是,我希望确保安装文件中的DLL包与GHC链接的DLL相同
在Stack文档中,说明在Windows Stack上安装了,您可以通过执行以下操作来管理此安装:
堆栈执行器--pacman-S mingw64/mingw-w64-x86_64-icu
通过查看我的AppData\Local\Programs\stack
文件夹,我可以看到各种GHC安装,每个安装都有自己的mingw
文件夹。还有一个msys2-20180531
文件夹,它似乎是我安装Stack时的全局文件夹:它位于GHC安装的旁边,而不是内部。在运行上面的stack exec
行之后,我能够在后面的msys2安装中找到ICU库。我的C:\msys64
安装中也有相同库的副本,其中还包含我的程序使用的其他外来库
当我运行
stack install
时,GHC将获取哪个ICU库副本?它是否先搜索堆栈安装,然后搜索C:\msys64
安装?我不确定,但我想它会使用mingw
版本,链接到您正在使用的ghc
的特定版本。@lsmo我感兴趣的库位于msys2-20180531
安装中,不属于任何特定GHC的一部分。我编辑了这个问题来澄清。抱歉,之前不清楚。我对mingw
和msys64
都不太熟悉。AFAIKmsys64
是一种类似bash的控制台,用于mingw
。stack`应使用AppData\Local\Programs\stack
下的msys
版本。之所以这是一个与GHC
一起的文件夹,可能是因为msys2-20180531
可以与所有不同版本的GHC
一起工作,所以不是在每个GHC
文件夹中都有多个msys2
,而是有一个对所有文件夹都有效。话虽如此,stack
如果不在Programs
下,应重新安装msys
,避免使用已安装的系统msys
。