简体   繁体   English

无法使用GHC 7.8rc2和Windows 7编译简单的hello世界(或使用cabal安装软件包)

[英]Can't compile a simple hello world using GHC 7.8rc2 and Windows 7 (or install packages with cabal)

I can't compile a simple hello world or install packages with cabal install when using ghc 7.8 , cabal 1.18.1.3 and cabal-install 1.18.0.2 . 使用ghc 7.8cabal 1.18.1.3cabal-install 1.18.0.2时,我无法编译简单的hello world或使用cabal install安装软件包。

When doing a cabal install stm (or any other package) from a command prompt Windows shows a "ghc.exe has stopped working" window, and the output is: 从命令提示符执行cabal install stm (或任何其他程序包)时,Windows显示“ghc.exe已停止工作”窗口,输出为:

Reading available packages...
Choosing modular solver.
Resolving dependencies...
Ready to install stm-2.4.2
Extracting
Waiting for install task to finish...
C:\Users\%USER%\AppData\Roaming\cabal\packages\hackage.haskell.org\stm\2.4.2\stm-2.4.2.tar.gz
to C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556...
Updating stm.cabal with the latest revision from the index.
Configuring stm-2.4.2...
creating C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup
creating C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist
creating C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup
"c:\ghc-7.8.0\bin\ghc.exe" "--make" "-odir" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup" "-hidir" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup" "-i" "-iC:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2" "-package-id" "Cabal-1.18.1.3-ac8664a5c71d605f2a4a8e21170969e0" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup\setup.hs" "-o" "C:\Users\%USER%\AppData\Local\Temp\stm-2.4.2-6556\stm-2.4.2\dist\setup\setup.exe"
Failed to install stm-2.4.2
Last 10 lines of the build log ( C:\Users\%USER%\AppData\Roaming\cabal\logs\stm-2.4.2.log ):
World file is already up to date.
cabal.exe: Error: some packages failed to install:
stm-2.4.2 failed during the configure step. The exception was:
user error

I installed(?) GHC 7.8 and cabal-install with the following steps 我按照以下步骤安装了(?) GHC 7.8cabal-install

Before doing all this, I uninstalled my previous Haskell Platform, deleted folders cabal and ghc from %USER%\\AppData\\Roaming , and other haskell stuff from the Program Files folder. 在完成所有这些之前,我卸载了我之前的Haskell平台,从%USER%\\AppData\\Roaming删除了文件夹cabal和ghc,以及Program Files夹中的其他haskell内容。

I am not sure if GHC needed any additional installation steps 我不确定GHC是否需要任何额外的安装步骤

I need GHC 7.8 because I want to try out GHCJS. 我需要GHC 7.8因为我想尝试GHCJS。

PS : PS

I also added LANG=C to my env variables so that compiling does not throw a UTF-8 encoding error. 我还在我的env变量中添加了LANG=C ,这样编译就不会抛出UTF-8编码错误。

cabal --version shows : cabal --version 显示

cabal-install version 1.18.0.2
using version 1.18.1 of the Cabal library

Which seems to be ok except that the cabal library shows up as 1.18.1 instead of 1.18.1.3, but i'm not sure that's an error. 这似乎没问题,除了cabal库显示为1.18.1而不是1.18.1.3,但我不确定这是一个错误。

ghc-pkg list shows: ghc-pkg list显示:

c:/ghc-7.8.0\lib\package.conf.d:
Cabal-1.18.1.3
Win32-2.3.0.1
array-0.5.0.0
base-4.7.0.0
bin-package-db-0.0.0.0
binary-0.7.1.0
rts-1.0
bytestring-0.10.4.0
containers-0.5.4.0
deepseq-1.3.0.2
directory-1.2.0.2
filepath-1.3.0.2
(ghc-7.8.0.20140228)
ghc-prim-0.3.1.0
(haskell2010-1.1.1.1)
(haskell98-2.0.0.3)
hoopl-3.10.0.0
hpc-0.6.0.1
integer-gmp-0.5.1.0
old-locale-1.0.0.6
old-time-1.1.0.2
pretty-1.1.1.1
process-1.2.0.0
template-haskell-2.9.0.0
time-1.4.1
transformers-0.3.0.0

** EDIT **: Trying to compile stm manually by going into its folder and running ghc generates the same error window and gives the output: **编辑**:尝试通过进入其文件夹手动编译stm并运行ghc生成相同的错误窗口并给出输出:

EDIT 2 : Actually, I can't even compile a simple hello world with ghc helloworld.hs : 编辑2 :实际上,我甚至无法使用ghc helloworld.hs编译一个简单的hello世界:

main = putStrLn "Hello, World!" main = putStrLn“你好,世界!”

Compiling with "-v3" gives the following (uninformative) output: 使用“-v3”进行编译会得到以下(无信息)输出:

Glasgow Haskell Compiler, Version 7.8.0.20140228, stage 2 booted by GHC version 7.6.3
Using binary package database: C:\ghc-7.8.0\lib\package.conf.d\package.cache
wired-in package ghc-prim mapped to ghc-prim-0.3.1.0-ce20d91f79b43ede95508e8cfd2188b0
wired-in package integer-gmp mapped to integer-gmp-0.5.1.0-67cd00feecdc491a633c46b0f7652b46
wired-in package base mapped to base-4.7.0.0-d4a0afe8e5c5f0dff2237b1231b56978
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-2.9.0.0-f798cb95c80f3e3751ec33b413381b57
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags:
wired-in package ghc-prim mapped to ghc-prim-0.3.1.0-ce20d91f79b43ede95508e8cfd2188b0
wired-in package integer-gmp mapped to integer-gmp-0.5.1.0-67cd00feecdc491a633c46b0f7652b46
wired-in package base mapped to base-4.7.0.0-d4a0afe8e5c5f0dff2237b1231b56978
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-2.9.0.0-f798cb95c80f3e3751ec33b413381b57
wired-in package dph-seq not found.
wired-in package dph-par not found.
*** Chasing dependencies:
Chasing modules from: *asd.hs
Stable obj: []
Stable BCO: []
Ready for upsweep
  [NONREC
      ModSummary {
         ms_hs_date = 2014-03-10 04:11:51 UTC
         ms_mod = main:Main,
         ms_textual_imps = [import (implicit) Prelude]
         ms_srcimps = []
      }]
*** Deleting temp files:
Deleting:
compile: input file asd.hs
Created temporary directory: C:\Users\facuq\AppData\Local\Temp\ghc6824_1
*** Checking old interface for main:Main:
[1 of 1] Compiling Main             ( asd.hs, asd.o )
*** Parser:
*** Renamer/typechecker:
*** Desugar:
Result size of Desugar (after optimization)
  = {terms: 7, types: 5, coercions: 0}
*** Simplifier:
Result size of Simplifier = {terms: 7, types: 5, coercions: 0}
*** Tidy Core:
Result size of Tidy Core = {terms: 7, types: 5, coercions: 0}
*** CorePrep:
Result size of CorePrep = {terms: 9, types: 6, coercions: 0}
*** Stg2Stg:
*** CodeOutput:
*** New CodeGen:
*** CPSZ:
*** CPSZ:

It's actually a bug in GHC; 这实际上是GHC中的一个错误; it was confirmed on the GHC mailing list, and two people can reproduce it ( ghc's bug manager thread ). 它在GHC邮件列表中得到确认,两个人可以重现它( ghc的bug管理器线程 )。

your ghc.exe path and cabal.exe path should be in your path variable 您的ghc.exe路径和cabal.exe路径应该在您的路径变量中

It has worked for me. 它对我有用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM