Macos 在haskell平台2013.2.0.0的Mac OS X上安装时尚haskell时出错

Macos 在haskell平台2013.2.0.0的Mac OS X上安装时尚haskell时出错,macos,haskell,haskell-platform,Macos,Haskell,Haskell Platform,在尝试安装hackage的时尚haskell软件包时,我总是会遇到相同的错误。 安装进行得很顺利,直到安装了导管,而导管几乎无法正确安装 错误消息的结尾: 17 warnings and 2 errors generated. Failed to install conduit-1.0.8 cabal: Error: some packages failed to install: conduit-1.0.8 failed duri

在尝试安装hackage的时尚haskell软件包时,我总是会遇到相同的错误。 安装进行得很顺利,直到安装了导管,而导管几乎无法正确安装

错误消息的结尾:

        17 warnings and 2 errors generated.
        Failed to install conduit-1.0.8
        cabal: Error: some packages failed to install:
        conduit-1.0.8 failed during the building phase. The exception was:
        ExitFailure 1
        stylish-haskell-0.5.8.0 depends on conduit-1.0.8 which failed to install. 
        yaml-0.8.5.1 depends on conduit-1.0.8 which failed to install.
我得到的完整终端输出是:

        Configuring conduit-1.0.8...

        /var/folders/cn/67wph78d62qc1v_lm7z2mb980000gn/T/32054.c:1:12:
             warning: control reaches end of non-void function [-Wreturn-type]
        int foo() {}
                   ^
        1 warning generated.
        Building conduit-1.0.8...
        Preprocessing library conduit-1.0.8...

        Data/Conduit/Binary.hs:165:14:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    let c' = c - S.length bs
                         ^

        Data/Conduit/Binary.hs:166:18:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    assert (c' >= 0) $
                             ^

        Data/Conduit/Binary.hs:171:34:
             warning: missing terminating ' character [-Winvalid-pp-token]
                                pullLimited c'
                                             ^

        Data/Conduit/Binary.hs:281:62:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    await >>= maybe (return $ L.fromChunks $ front []) go'
                                                                         ^

        Data/Conduit/Binary.hs:283:11:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    go' bs =
                      ^

        Data/Conduit/Binary.hs:299:39:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    await >>= maybe (return ()) go'
                                                  ^

        Data/Conduit/Binary.hs:301:11:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    go' bs =
                      ^
        7 warnings generated.

        Data/Conduit/Internal.hs:79:47:
             warning: missing terminating ' character [-Winvalid-pp-token]
        -- * /i/ is the type of values for this @Pipe@'s input stream.
                                                      ^

        Data/Conduit/Internal.hs:81:47:
             warning: missing terminating ' character [-Winvalid-pp-token]
        -- * /o/ is the type of values for this @Pipe@'s output stream.
                                                      ^

        Data/Conduit/Internal.hs:152:64:
             warning: \u used with no following hex digits; treating as '\' followed by identifier [-Wunicode]
                local f (NeedInput p c) = NeedInput (\i -> local f (p i)) (\u -> local f (c u))
                                                                           ^

        Data/Conduit/Internal.hs:170:62:
             warning: \u used with no following hex digits; treating as '\' followed by identifier [-Wunicode]
                listen (NeedInput p c) = NeedInput (\i -> listen (p i)) (\u -> listen (c u))
                                                                         ^

        Data/Conduit/Internal.hs:175:26:
             warning: missing terminating ' character [-Winvalid-pp-token]
                     return $ do (x,w') <- listen p
                                     ^

        Data/Conduit/Internal.hs:176:46:
             warning: missing terminating ' character [-Winvalid-pp-token]
                                 return (x, w `mappend` w')
                                                         ^

        Data/Conduit/Internal.hs:180:58:
             warning: \u used with no following hex digits; treating as '\' followed by identifier [-Wunicode]
                pass (NeedInput p c) = NeedInput (\i -> pass (p i)) (\u -> pass (c u))
                                                                     ^

        Data/Conduit/Internal.hs:197:74:
             warning: \u used with no following hex digits; treating as '\' followed by identifier [-Wunicode]
                catchError (NeedInput p c) f = NeedInput (\i -> catchError (p i) f) (\u -> catchError (c u) f)
                                                                                     ^

        Data/Conduit/Internal.hs:306:50:
             warning: missing terminating ' character [-Winvalid-pp-token]
        awaitForever :: Monad m => (i -> Pipe l i o r m r') -> Pipe l i o r m r
                                                         ^

        Data/Conduit/Internal.hs:338:4:
             error: invalid preprocessing directive
              #-}
               ^

        Data/Conduit/Internal.hs:543:13:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    pipe' <- mpipe
                        ^

        Data/Conduit/Internal.hs:544:18:
             warning: missing terminating ' character [-Winvalid-pp-token]
                    case pipe' of
                             ^

        Data/Conduit/Internal.hs:546:29:
             warning: missing terminating ' character [-Winvalid-pp-token]
                        _ -> return pipe'
                                        ^

        Data/Conduit/Internal.hs:581:83:
             warning: missing terminating ' character [-Winvalid-pp-token]
        mapInput f f' (NeedInput p c)    = NeedInput (mapInput f f' . p . f) (mapInput f f' . c)
                                                                                          ^

        Data/Conduit/Internal.hs:584:82:
             warning: missing terminating ' character [-Winvalid-pp-token]
        mapInput f f' (Leftover p i)     = maybe id (flip Leftover) (f' i) $ mapInput f f' p
                                                                                         ^

        Data/Conduit/Internal.hs:605:4:
             error: invalid preprocessing directive
              #-}
               ^

        Data/Conduit/Internal.hs:650:35:
             warning: \u used with no following hex digits; treating as '\' followed by identifier [-Wunicode]
                    loop = awaitE >>= either (\u -> return (u, r)) (\_ -> loop)
                                              ^

        Data/Conduit/Internal.hs:671:14:
             warning: missing terminating ' character [-Winvalid-pp-token]
                let final' = do
                         ^

        Data/Conduit/Internal.hs:674:58:
             warning: missing terminating ' character [-Winvalid-pp-token]
                return (liftIO (I.writeIORef ref False) >> src, final')
                                                                     ^
        17 warnings and 2 errors generated.
        Failed to install conduit-1.0.8
        cabal: Error: some packages failed to install:
        conduit-1.0.8 failed during the building phase. The exception was:
        ExitFailure 1
        stylish-haskell-0.5.8.0 depends on conduit-1.0.8 which failed to install.
        yaml-0.8.5.1 depends on conduit-1.0.8 which failed to install.
配置导管-1.0.8。。。
/var/folders/cn/67wph78d62qc1v_lm7z2mb98000gn/T/32054.c:1:12:
警告:控件到达非无效函数的末尾[-Wreturn类型]
int foo(){}
^
生成1个警告。
建筑导管-1.0.8。。。
预处理库导管-1.0.8。。。
数据/导管/二进制文件。hs:165:14:
警告:缺少终止字符[-Winvalid pp token]
设c'=c-S长度bs
^
数据/导管/二进制文件。hs:166:18:
警告:缺少终止字符[-Winvalid pp token]
断言(c'>=0)$
^
数据/导管/二进制。hs:171:34:
警告:缺少终止字符[-Winvalid pp token]
PullC'
^
Data/conductor/Binary.hs:281:62:
警告:缺少终止字符[-Winvalid pp token]
等待>>=可能(返回$L.fromChunks$front[])开始
^
数据/导管/二进制。hs:283:11:
警告:缺少终止字符[-Winvalid pp token]
加油=
^
Data/conductor/Binary.hs:299:39:
警告:缺少终止字符[-Winvalid pp token]
等待>>=可能(返回())开始'
^
数据/导管/二进制文件。hs:301:11:
警告:缺少终止字符[-Winvalid pp token]
加油=
^
生成了7个警告。
数据/导管/内部。hs:79:47:
警告:缺少终止字符[-Winvalid pp token]
--*/i/是此@Pipe@的输入流的值类型。
^
数据/导管/内部。hs:81:47:
警告:缺少终止字符[-Winvalid pp token]
--*/o/是此@Pipe@的输出流的值类型。
^
数据/导管/内部。hs:152:64:
警告:\u未使用以下十六进制数字;视为“\”后跟标识符[-Wunicode]
本地f(NeedInput p c)=NeedInput(\i->local f(p i))(\u->local f(c u))
^
数据/导管/内部。hs:170:62:
警告:\u未使用以下十六进制数字;视为“\”后跟标识符[-Wunicode]
listen(NeedInput p c)=NeedInput(\i->listen(p i))(\u->listen(c u))
^
数据/导管/内部。hs:175:26:
警告:缺少终止字符[-Winvalid pp token]
返回$do(x,w')pass(pi))(\u->pass(cu))
^
数据/导管/内部。hs:197:74:
警告:\u未使用以下十六进制数字;视为“\”后跟标识符[-Wunicode]
catchError(NeedInput p c)f=NeedInput(\i->catchError(p i)f)(\u->catchError(c u)f)
^
数据/导管/内部。hs:306:50:
警告:缺少终止字符[-Winvalid pp token]
永远等待::Monad m=>(i->Pipe l i o r m')->Pipe l i o r m r
^
数据/导管/内部。hs:338:4:
错误:预处理指令无效
#-}
^
数据/导管/内部。hs:543:13:
警告:缺少终止字符[-Winvalid pp token]
管道'>=任一(\u->返回(u,r))(\ \u->循环)
^
数据/导管/内部。hs:671:14:
警告:缺少终止字符[-Winvalid pp token]
让我们做最后的事
^
数据/导管/内部。hs:674:58:
警告:缺少终止字符[-Winvalid pp token]
返回(liftIO(I.writeIORef-False)>>src,final')
^
生成17个警告和2个错误。
未能安装导管-1.0.8
阴谋集团:错误:某些软件包未能安装:
导管-1.0.8在建造阶段出现故障。例外情况是:
退出失败1
Stylegi-haskell-0.5.8.0取决于导管-1.0.8,该导管未能安装。
yaml-0.8.5.1依赖于未安装的导管-1.0.8。

我不是这方面的专家,但我认为这是因为小牛用一个
gcc
半兼容包装器包装的
clang
版本取代了标准的
gcc
。它不时使GHC窒息。您可以通过编辑
/usr/local/lib/ghc-7.6.3/settings
来修复它,以便
“C编译器命令”
入口指向有效的
gcc

例如,我从自制中安装了
gcc
4.8,然后将设置行更改为

 ("C compiler command", "/usr/local/bin/gcc-4.9")

此问题可以通过以下解决方法解决


如其他一些答案所述,这是由于gcc
cd ~/Downloads
chmod +x ghc-clang-wrapper
./ghc-clang-wrapper