使用堆栈时如何确定GHC版本?
我认为这将是解决方案,但是...
我有以下堆栈文件:
resolver: nightly-2018-07-10
packages:
- .
这就是堆放中的内容:
Stackage Nightly 2018-07-10 (ghc-8.4.3)
Published on 2018-07-10
View changes
stack resolver: nightly-2018-07-10
然后我建立:
$ stack clean
$ stack build
Building all executables for `PyrethrumPre' once. After a successful build
of all of them, only specified executables will be rebuilt.
PyrethrumPre-0.1.0.0: configure (exe)
Configuring PyrethrumPre-0.1.0.0...
PyrethrumPre-0.1.0.0: build (exe)
Preprocessing executable 'PyrethrumPre' for PyrethrumPre-0.1.0.0..
Building executable 'PyrethrumPre' for PyrethrumPre-0.1.0.0..
[1 of 2] Compiling MTLPlusLens ( src\MTLPlusLens.hs, .stack-work\dist \7d103d30\build\PyrethrumPre\PyrethrumPre-tmp\MTLPlusLens.o )
[2 of 2] Compiling Main ( src\Main.hs, .stack-work\dist\7d103d30\build\PyrethrumPre\PyrethrumPre-tmp\Main.o )
Linking .stack-work\dist\7d103d30\build\PyrethrumPre\PyrethrumPre.exe ...
PyrethrumPre-0.1.0.0: copy/register
Installing executable PyrethrumPre in C:\PyrethrumPre\.stack-work\install\cd327184\bin
目前,我预计解析器的GHC值将为8.4.3:
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.2.2
为什么GHC版本不符合预期?
谢谢
答案 0 :(得分:2)
Stack在~/.stack
下的“专用”位置安装了项目所需的GHC版本,该位置不在常规$ PATH上的ghc
位置。您看到的ghc
版本是系统范围内安装的版本(可能是系统的程序包管理器安装的版本),Stack默认会忽略该版本。要查看Stack实际用于构建项目的版本,请使用stack exec -- ghc --version
。 stack exec
创建一个shell上下文,其中包括$ PATH上正确版本的ghc
,以及其他更改。