2015年3月12日木曜日

[windows][haskell] cabal installでWin32File.hsc:34:19: fatal error: Share.h: No such file or directoryというエラーが出たときの対処方法

Windows 8.1+Haslell Platform 2014.2.0.0環境でcabal installを実行したところ、以下のようなエラーに遭遇しました。

問題の現象:

Preprocessing library streaming-commons-0.1.9.1...
Win32File.hsc:34:19: fatal error: Share.h: No such file or directory
compilation terminated.
compiling dist\build\System\Win32File_hsc_make.c failed (exit code 1)

問題の原因:

ネットの情報によると、これはcygwin環境とmingw環境が混在している場合に発生するようです。Haskell Platformはmingwに依存しているのですが、cygwinがインストールされているとcabal installから実行されるgccその他の挙動がmingwのものと異なってしまい、エラーとなります。

問題の解決方法:

cygwin付属のバイナリでなく、mingw付属のバイナリが利用されるようにPATHの記述を変更することで、この問題が発生しなくなります。PATH環境変数の中にあるcygwin環境のディレクトリを"C:\Program Files\Haskell Platform\2014.2.0.0\mingw\bin"というディレクトリよりも後ろに記載するように修正してください。

参考:

0 件のコメント:

コメントを投稿