gpt4 book ai didi

haskell - 使用 GHC 的 zlib 构建错误

转载 作者:行者123 更新时间:2023-12-03 23:10:21 24 4
gpt4 key购买 nike

我正在使用具有以下配置的 VM:

  • Arch Linux(3.0-ARCH 内核)
  • GHC 7.0.3
  • 阴谋安装 0.10.2
  • cabal 图书馆 1.10.1.0

  • 当我尝试使用 cabal 构建 zlib 时...
    $ cabal install zlib

    我得到以下输出:
    Resolving dependencies...
    Downloading zlib-0.5.3.2...
    Configuring zlib-0.5.3.2...
    Preprocessing library zlib-0.5.3.2...
    Stream.hsc:86:21: error: missing binary operator before token "("
    Stream.hsc: In function ‘main’:
    Stream.hsc:86:21: error: missing binary operator before token "("
    Stream.hsc:86:21: error: missing binary operator before token "("
    compiling dist/build/Codec/Compression/Zlib/Stream_hsc_make.c failed (exit code 1)
    command was: /usr/bin/gcc -c dist/build/Codec/Compression/Zlib/Stream_hsc_make.c -o dist/build/Codec/Compression/Zlib/Stream_hsc_make.o -fno-stack-protector -fno-stack-protector -D__GLASGOW_HASKELL__=700 -Dlinux_BUILD_OS -Dlinux_HOST_OS -Dx86_64_BUILD_ARCH -Dx86_64_HOST_ARCH -I/usr/lib/ghc-7.0.3/bytestring-0.9.1.10/include -I/usr/lib/ghc-7.0.3/base-4.3.1.0/include -I/usr/lib/ghc-7.0.3/include -I/usr/lib/ghc-7.0.3/include -I/usr/lib/ghc-7.0.3/include/
    cabal: Error: some packages failed to install:
    zlib-0.5.3.2 failed during the building phase. The exception was:
    ExitFailure 1

    任何人都可以阐明这个构建错误吗?

    编辑:这是 Stream.hsc 的一个片段,带有行号:
     82 import Foreign
    83 ( Word8, Ptr, nullPtr, plusPtr, peekByteOff, pokeByteOff, mallocBy tes
    84 , ForeignPtr, FinalizerPtr, newForeignPtr_, addForeignPtrFinalizer
    85 , withForeignPtr, touchForeignPtr )
    86 #if MIN_VERSION_base(4,4,0)
    87 import Foreign.ForeignPtr.Unsafe ( unsafeForeignPtrToPtr )
    88 import System.IO.Unsafe ( unsafePerformIO )
    89 #else
    90 import Foreign ( unsafeForeignPtrToPtr, unsafePerformIO )
    91 #endif

    最佳答案

    出于某种原因,MIN_VERSION_base宏没有得到扩展,因此预处理器看到条件 MIN_VERSION_base(4,4,0)它当然无法处理。我还没有找到宏没有展开的原因,但解决方法是

  • 安装 zlib-0.5.3.1 代替
  • 解压压缩包并编辑Codec/Compression/Zlib/Stream.hsc删除有问题的宏(您使用的是 7.0.3,因此您的基本版本是 4.3.1.0,您可以将宏替换为 0)

  • 编辑:经过一番摸索,我发现隐藏这些预处理器指令,这些指令不适用于 hsc2hs。要进行处理,它们必须被一个额外的“#”屏蔽。错误报告正在进行中。

    关于haskell - 使用 GHC 的 zlib 构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8961413/

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