Windows 8.1 x64 で Eclipse (Kepler Service Release 2) + EclipseFP (2.6.0) + Haskell Platform を使用しています。cabal をインストールした直後に、EclipseFP が動作を停止し、次のように表示されました。
プログラム ghc バージョン >=6.4 が必要ですが、見つかりませんでした。
私は持っている:
- アンインストールされた Haskell プラットフォーム
- 削除された C:\Users\myuser\AppData\Roaming\cabal*
- 削除された C:\Program Files (x86)\Haskell*
- Haskell プラットフォーム 2013.2 をインストールします。
- Haskell ワークスペースで Eclipse を実行する
- 私のプロジェクトをビルドしてみてください
- ghcに関するこのエラーが発生し、ビルドできません。
EclipseFP 構成は、すべての Haskell Helper 実行可能ファイルを検出しました。Cabal 1.16.0.2 と GHC 7.6.3 が既に見つかりました。コマンドラインから GHC と cabal が見つかり、動作しています。「cabal build」もコマンドラインからプロジェクトに取り組んでいます。
このメッセージはほとんど何も言いません! GHCを検索しているパス、またはこのパスを取得する場所がわかれば...
編集: buildwrapper からのメッセージ:
"C:\Users\home\AppData\Roaming\cabal\bin\buildwrapper.exe synchronize --force=false --tempfolder=.dist-buildwrapper --cabalpath=C:\Program Files (x86)\Haskell Platform\2013.2 .0.0\lib\extralibs\bin\cabal.exe --cabalfile=D:\Project\haskell2\SomeGL\SomeGL.cabal --cabalflags= --logcabal=true
setup_config が存在しないため設定
"C:\Program Files (x86 )\Haskell Platform\2013.2.0.0\lib\extralibs\bin\cabal.exe" "configure" "--verbose=1" "--user" "--enable-tests" "--enable-benchmarks" "- -builddir=D:\Project\haskell2\SomeGL.dist-buildwrapper\dist" cabal.exe: プログラム ghc バージョン >=6.4 が必要ですが、見つかりませんでした。"
cmd.exe の最後の行を (通常の非管理者ユーザーとして) 正確に呼び出すと、すべて正常に動作します。
"C:\Program Files (x86)\Haskell Platform\2013.2.0.0\lib\extralibs\bin\cabal.exe" "configure" "--verbose=1" "--user" "--enable-tests" "--enable-benchmarks" "--builddir=D:\Project\haskell2\SomeGL\.dist-buildwrapper\dist"
編集:使用される潜在的なパス環境を見つけるために、Eclipse内でGHCiコンソールを実行しようとしました:
import System.Environment
x <- getEnvironment
filter (\ (a,_) -> a == "Path") x
そして、次で始まる何かを得ました:
[("パス","C:\Program Files (x86)\Haskell\bin;C:\Program Files (x86)\Haskell Platform\2013.2.0.0\lib\extralibs\bin;C:\Program Files (x86) \Haskell Platform\2013.2.0.0\bin;...")]
最初のフォルダーは無効ですが、Haskell プラットフォームは有効で機能しています。私が見つけたもう一つのこと。「Build All」コマンドを実行したときに、GHC を使用して Eclipse で Process を実行し、パスは次のとおりでした。
実行可能ファイル C:\Program Files (x86)\Haskell Platform\2013.2.0.0\bin\ghc.exe の実行
このプロセスの詳細を見に行きましたが、現在Eclipseを実行しているのと同じユーザーから実行されています。パスは正しいですが、それでもエラーが発生しました:
プログラム ghc バージョン >=6.4 が必要ですが、見つかりませんでした。
コマンドラインから実行してもまだ機能しています。プログラムにエラーがありますが、コマンドラインでのみ表示されます。
誰かがこの問題を見つけるのを手伝ってくれますか?
編集:興味深い問題が見つかりました。「Build All」コマンドを実行すると、次のコマンドが実行されます。
C:\Users\myuser\AppData\Roaming\cabal\bin\buildwrapper.exe synchronize --force=false --tempfolder=.dist-buildwrapper --cabalpath=C:\Program Files (x86)\Haskell Platform\2013.2. 0.0\lib\extralibs\bin\cabal.exe --cabalfile=D:\haskell\SomeGL\SomeGL.cabal --cabalflags= --logcabal=true
コマンドラインから実行するとエラーが発生します。問題は、スペースが含まれているため、cabalpath の周りに引用符がないことです。コマンドラインからそのように実行すると、動作します:
C:\Users\myuser\AppData\Roaming\cabal\bin\buildwrapper.exe synchronize --force=false --tempfolder=.dist-buildwrapper --cabalpath="C:\Program Files (x86)\Haskell Platform\2013.2.0.0\lib\extralibs\bin\cabal.exe" --cabalfile=D:\haskell\SomeGL\SomeGL.cabal --cabalflags= --logcabal=true
パスにスペースが含まれている可能性があるため、すべての「--cabalfile」パラメーターには引用符を付ける必要があると思います。これが Eclipse での問題かどうかはまだわかりません。