无法编译haskell编码lib。无法找到HaXml模块

时间:2016-03-10 00:17:38

标签: haskell haskell-stack

我需要一个库来编码cp1251中的数据,以便与使用它的api一起工作。

为此,我发现只有2个库。 encoding lib和text-icu lib。第一个看起来更好,因为它可以静态链接到我的程序。

但我甚至无法编译它!我正在使用堆栈,所以我在我的.cabal文件中添加encoding到build-deps,然后堆栈求解器更新我的堆栈yaml文件和extra-deps中的encoding-0.8。

但在运行stack build后我出错了

Data/Encoding/Preprocessor/XMLMapping.hs:11:8:
    Could not find module ‘Text.XML.HaXml.Types’
    Use -v to see a list of the files searched for.

Data/Encoding/Preprocessor/XMLMappingBuilder.hs:15:8:
    Could not find module ‘Text.XML.HaXml.OneOfN’
    Use -v to see a list of the files searched for.

Data/Encoding/Preprocessor/XMLMappingBuilder.hs:16:8:
    Could not find module ‘Text.XML.HaXml.XmlContent’
    Use -v to see a list of the files searched for.

我尝试使用旧版本的HaXml和编码,但是遇到了同样的错误。 例如,我在阅读changelog https://hackage.haskell.org/package/encoding-0.7.0.2/changelog之后尝试将encoding-0.6.7HaXml-1.22.3一起使用,但却遇到了同样的错误。 在hackage文档中,所有这些编码无法导入的模块都存在。

如何编译此lib?我在linux mint x64上使用堆栈1.0.4,lts-5.6和ghc-7.10.3

stack.yaml

flags: {}
extra-package-dbs: []
packages:
- '.'
extra-deps:
- encoding-0.8
- text-1.2.2.0
resolver: lts-5.6

小集团:

name:                hapidry
version:             0.1.1.0
synopsis:            Initial project template from stack
description:         Please see README.md
homepage:            -
license:             GPL-2
license-file:        LICENSE
author:              -
maintainer:          -
copyright:           GPL
category:            network
build-type:          Simple
-- extra-source-files:
cabal-version:       >=1.10

library
  hs-source-dirs:      src
  exposed-modules:     Lib
  build-depends:       base >= 4.7 && < 5
  default-language:    Haskell2010

executable hapidry-exe
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                     , hapidry
                     , wreq
                     , ConfigFile
                     , aeson
                     , lens
                     , cryptohash
                     , binary
                     , mtl
                     , base16-bytestring
                     , bytestring
                     , containers
                     , text
                     , lens-aeson
                     , data-default
                     , optparse-applicative
                     , encoding
  default-language:    Haskell2010

test-suite hapidry-test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Spec.hs
  build-depends:       base
                     , hapidry
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  default-language:    Haskell2010

source-repository head
  type:     git
  location: -

1 个答案:

答案 0 :(得分:0)

最后,我编写了自己的编码功能。它似乎是可接受的解决方法。另一个单字节编码的函数可以用同样的方式实现。

CWnd *