gpt4 book ai didi

macos - OS X 10.9 (Mavericks) 上的 HaXml 安装问题

转载 作者:行者123 更新时间:2023-12-05 00:27:29 25 4
gpt4 key购买 nike

我在系统上安装 HaXml 时遇到问题。

我已经安装了 Haskell 平台并使用了以下链接中提供的 clang-wrapper 补丁:http://www.haskell.org/platform/mac.html

当我尝试运行时 cabal install HaXml我收到以下错误。我已经通过做一些研究尝试了一切,但仍然没有解决这个问题的运气。我什至尝试安装在此链接上找到的依赖项 http://hackage.haskell.org/package/HaXml单独然后尝试安装软件包但仍然没有运气。我在终端中收到以下错误消息:

Resolving dependencies...
Configuring HaXml-1.24...

/var/folders/m0/w93djnj57fv4wynyrjf4lgxc0000gn/T/23529.c:1:12:
warning: control reaches end of non-void function [-Wreturn-type]
int foo() {}
^
1 warning generated.
Building HaXml-1.24...
Preprocessing library HaXml-1.24...
[ 1 of 42] Compiling Text.XML.HaXml.Xtract.Lex ( src/Text/XML/HaXml/Xtract/Lex.hs, dist/build/Text/XML/HaXml/Xtract/Lex.o )
[ 2 of 42] Compiling Text.XML.HaXml.DtdToHaskell.TypeDef ( src/Text/XML/HaXml/DtdToHaskell/TypeDef.hs, dist/build/Text/XML/HaXml/DtdToHaskell/TypeDef.o )
[ 3 of 42] Compiling Text.XML.HaXml.DtdToHaskell.Instance ( src/Text/XML/HaXml/DtdToHaskell/Instance.hs, dist/build/Text/XML/HaXml/DtdToHaskell/Instance.o )
[ 4 of 42] Compiling Text.XML.HaXml.Posn ( src/Text/XML/HaXml/Posn.hs, dist/build/Text/XML/HaXml/Posn.o )
[ 5 of 42] Compiling Text.XML.HaXml.Lex ( src/Text/XML/HaXml/Lex.hs, dist/build/Text/XML/HaXml/Lex.o )
[ 6 of 42] Compiling Text.XML.HaXml.Types ( src/Text/XML/HaXml/Types.hs, dist/build/Text/XML/HaXml/Types.o )
[ 7 of 42] Compiling Text.XML.HaXml.Namespaces ( src/Text/XML/HaXml/Namespaces.hs, dist/build/Text/XML/HaXml/Namespaces.o )
[ 8 of 42] Compiling Text.XML.HaXml.Schema.XSDTypeModel ( src/Text/XML/HaXml/Schema/XSDTypeModel.hs, dist/build/Text/XML/HaXml/Schema/XSDTypeModel.o )

src/Text/XML/HaXml/Schema/XSDTypeModel.hs:305:19: Warning:
Fields of `Schema' not initialised: schema_elementFormDefault,
schema_attributeFormDefault, schema_finalDefault,
schema_blockDefault, schema_targetNamespace, schema_version,
schema_namespaces
In the expression: Schema {schema_items = []}
In an equation for `mempty': mempty = Schema {schema_items = []}
In the instance declaration for `Monoid Schema'
[ 9 of 42] Compiling Text.XML.HaXml.Schema.PrimitiveTypes ( src/Text/XML/HaXml/Schema/PrimitiveTypes.hs, dist/build/Text/XML/HaXml/Schema/PrimitiveTypes.o )
[10 of 42] Compiling Text.XML.HaXml.Verbatim ( src/Text/XML/HaXml/Verbatim.hs, dist/build/Text/XML/HaXml/Verbatim.o )
[11 of 42] Compiling Text.XML.HaXml.Combinators ( src/Text/XML/HaXml/Combinators.hs, dist/build/Text/XML/HaXml/Combinators.o )
[12 of 42] Compiling Text.XML.HaXml.Parse ( src/Text/XML/HaXml/Parse.hs, dist/build/Text/XML/HaXml/Parse.o )
[13 of 42] Compiling Text.XML.HaXml.Pretty ( src/Text/XML/HaXml/Pretty.hs, dist/build/Text/XML/HaXml/Pretty.o )
[14 of 42] Compiling Text.XML.HaXml.Html.Generate ( src/Text/XML/HaXml/Html/Generate.hs, dist/build/Text/XML/HaXml/Html/Generate.o )
[15 of 42] Compiling Text.XML.HaXml.Html.Parse ( src/Text/XML/HaXml/Html/Parse.hs, dist/build/Text/XML/HaXml/Html/Parse.o )
[16 of 42] Compiling Text.XML.HaXml.Wrappers ( src/Text/XML/HaXml/Wrappers.hs, dist/build/Text/XML/HaXml/Wrappers.o )

src/Text/XML/HaXml/Wrappers.hs:34:36:
Couldn't match type `[Char]' with `b0 -> c0'
Expected type: b0 -> c0
Actual type: String
In the return type of a call of `show'
Probable cause: `show' is applied to too many arguments
In the first argument of `(.)', namely `show 1'
In the second argument of `(++)', namely `show 1 . 24'

src/Text/XML/HaXml/Wrappers.hs:34:36:
Couldn't match expected type `[Char]' with actual type `a0 -> c0'
In the second argument of `(++)', namely `show 1 . 24'
In the second argument of `($)', namely
`"part of HaXml-" ++ show 1 . 24'
In a stmt of a 'do' block:
putStrLn $ "part of HaXml-" ++ show 1 . 24
Failed to install HaXml-1.24
cabal: Error: some packages failed to install:
HaXml-1.24 failed during the building phase. The exception was:
ExitFailure 1

帮助!

最佳答案

我知道问题是什么,但不知道一个很好的解决方案。

问题出在 src/Text/XML/HaXml/Wrappers.hs 文件中。 (仅供引用,您始终可以通过键入“cabal unpack”,然后 cd 进入新创建的目录来轻松查看 cabal 中的源代码)。如果您查看该文件,它会使用 ghc 语言扩展在实际编译之前将 c 样式预处理添加到构建中。在这种情况下,它被用于将构建的版本号插入到源代码中......这是行:

putStrLn $ "part of HaXml-"++show MAJOR.MINOR

如果您然后通过源代码 grep,您可以看到添加“MAJOR”和“MINOR”宏的位置
> grep -r MAJOR *
HaXmL.cabal: cpp-options: -DMAJOR=1 -DMINOR=24

这种机制在我的 Linux 机器上运行良好.... Wrappers.hs 中的行扩展为
putStrLn $ "part of HaXml-"++show 1.24

根据您上面显示的错误消息,您的 Mac 上的扩展实际上正在变成
putStrLn $ "part of HaXml-"++show 1 . 24

差异是微妙的,但它具有巨大的影响。由于多余的空格,而不是将版本号解析为 Float,而是“。”已成为中缀组合运算符,它期望“1”和“24”是要组合的函数!

这可能是构建过程中的一个错误......

我目前无法使用 Mac 进行进一步调试(就像我之前提到的,这是在我的 Linux 机器上编译的),但您有以下选择。
  • 您可以向 HaXmL 人员提交一份但报告,然后等待他们修复它(如果我今天晚些时候感到有动力,我可能会自己做这个)。显然,这可能需要一些时间。
  • 如果您有该选项,则可以在另一个操作系统上工作。
  • 如果您只是想让事情启动并运行,请做一个小的修复并自己构建。

  • 这比听起来容易。只需执行以下操作:
    > cabal unpack HaXmL
    > cd HaXmL-1.24

    现在编辑 src/Text/XML/HaXml/Wrappers.hs 并直接手动输入版本号(即将“MAJOR.MINOR”更改为“1.24”)(还有 src/Text/XML/HaXml.hs)。继续输入
    > cabal configure
    > cabal build
    > cabal install

    (这最后三行可以由最后一个“cabal install”代替,但由于您正在调试,我认为通过分别键入来隔离问题更容易)。

    如果这有效,您应该有一个 HaXmL 的工作版本。当然,从长远来看,这不是一个很好的解决方案(即 - 您必须为每次升级重复此操作),但有时这是快速开始的唯一方法。

    关于macos - OS X 10.9 (Mavericks) 上的 HaXml 安装问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20497348/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com