我正在尝试为Haskell设置环境,并安装了堆栈。安装后,我意识到不是我需要的GHC 8.6.4版本(8.0.2)。
compiler-exe: /home/manny/.stack/programs/x86_64-linux/ghc-tinfo6-
8.6.4/bin/ghc
compiler-bin: /home/manny/.stack/programs/x86_64-linux/ghc-tinfo6-
8.6.4/bin
compiler-tools-bin: /home/manny/.stack/compiler-tools/x86_64-linux-
tinfo6/ghc-8.6.4/bin
因此,我安装了GHC 8.0.2。我知道是否可以更改global-config文件,但可以解决该问题,指示我需要正确的编译器,但是进行此类更改以避免编辑配置文件的正确命令是什么?
我尝试过:
stack config set --compiler ghc-8.0.2
没有成功。我的编译器仍然是8.6.4。
~/.stack$ stack ghc -- --version
The Glorious Glasgow Haskell Compilation System, version 8.6.4
谢谢!
答案 0 :(得分:1)
您误解了stack config
命令。无论在何处使用--compiler
,都是在告诉Stack它应为当前命令使用哪个编译器版本-但是由于编辑配置不使用任何类型的编译器,因此实际上并没有任何改变。
只需运行stack config set
即可
Missing: COMMAND
Usage: stack config set COMMAND [--help]
Sets a field in the project's stack.yaml to value
这可以更好地说明问题。如果您寻求帮助,Stack会告诉您唯一有效的COMMAND
值为resolver
,system-ghc
和install-ghc
。
因此,您可以通过以下方式将resolver
设置为特定的编译器版本:
stack config set resolver ghc-8.0.2
但是您不能从命令行设置编译器,因为stack config set
不支持该命令。