3

私はhaskellを使ったまったくの初心者で、ささいなプロジェクトを作成していますが、実行する必要がありましたcabal install encoding。しかし、私がそうしたとき、それは私にこのエラーを与えました:

Configuring encoding-0.6.7.2...
setup.exe: Missing dependency on a foreign library:
* Missing (or bad) header file: system_encoding.h
This problem can usually be solved by installing the system package that
provides this library (you may need the "-dev" version). If the library is
already installed but in a non-standard location then you can use the flags
--extra-include-dirs= and --extra-lib-dirs= to specify where it is.
If the header file does exist, it may contain errors that are caught by the C
compiler at the preprocessing stage. In this case you can re-run configure
with the verbosity flag -v3 to see the error messages.
cabal.exe: Error: some packages failed to install:
encoding-0.6.7.2 failed during the configure step. The exception was:
ExitFailure 1

この問題をどのように修正しますか?

4

1 に答える 1

1

TL; DR: cabal install encoding -f-systemencoding


このトピックに関するいくつかのフォーラム投稿を見つけました。言われた最も重要なことは

欠落しているヘッダーはlanginfo.hです。Msys/MinGWまたはCygwinのどちらにもヘッダーがなく、最近のCygwinはかなり大きいので、どこから来たのかわかりません。

そこから、CygwinのWebサイトでlanginfo.hがどこにあるかを調べました。 Cygwinのデフォルトインストールが付属していることがわかりました。そしてこれがその道です:

usr/include/langinfo.h

そこで、Cygwinをインストールし(実際にはすでにインストールしました)、次のようにcabalinstallを実行しました。

cabal install encoding --extra-include-dirs='C:\cygwin\usr\include'

それは問題なくパッケージを登録しました。


アップデート

これによりパッケージを登録できますが、使用することはできません。GHCiを試してみると、次のエラーが発生しました。

Loading package encoding-0.6.7.2 ... linking ... ghc: unable to load package `encoding-0.6.7.2'

私は今また立ち往生しています。

アップデート2

私はfryguybobという名前の紳士からIRCについて助けを得ました。これはあなたがそれをインストールすることができるもう一つの方法です:cabal install encoding -f-systemencoding。それは私のために働いた

于 2013-03-15T03:52:45.620 に答える