当我试图编译一个Haskell文件时,错误:parse error on input'#';

当我试图编译一个Haskell文件时,错误:parse error on input'#';,haskell,haskell-stack,haskell-platform,Haskell,Haskell Stack,Haskell Platform,我正在学习如何使用这个SDK 当我下载完依赖项并试图编译一个示例时,错误类似于输入“#”上的解析错误 以下是错误来源的源代码: import Prelude hiding (traverse) #ifdef DEBUG import Debug.Trace #else trace :: String -> a -> a trace = flip const traceM :: Monad m => String -> m () traceM _ = return () #

我正在学习如何使用这个SDK

当我下载完依赖项并试图编译一个示例时,错误类似于输入“#”上的解析错误 以下是错误来源的源代码:

import Prelude hiding (traverse)
#ifdef DEBUG
import Debug.Trace
#else
trace :: String -> a -> a
trace = flip const
traceM :: Monad m => String -> m ()
traceM _ = return ()
#endif

我猜这是因为Haskell文件中使用了类似于“#ifdef”的C语法导致了此错误,但我已经使用了cabal install cipher-aes128来下载此SDK的依赖项(可能)。

参考cabal文档

extensions: CPP
应添加到包说明中,以启用C预处理器

此外,语言pragma:

{-# LANGUAGE CPP #-}

还启用语言扩展。

参考阴谋集团文档

extensions: CPP
应添加到包说明中,以启用C预处理器

此外,语言pragma:

{-# LANGUAGE CPP #-}

还启用语言扩展。

您是如何编译该示例的
#ifdef
需要
CPP
扩展名,该扩展名在此阴谋集团文件()中启用。我想在使用cabal构建这个库时,应该先编译它,然后再使用其中一个示例。我只是使用
ghc--make Garbler.hs
。多亏了您的帮助,我安装了库构建中的所有软件包,但它仍然无法工作,错误信息仍然类似于
解析输入错误“#”
。请原谅我的无知,我没有使用Haskell的经验。看来构建示例(例如,bit和)的最佳方法是运行build.sh()。此脚本使用cabal安装所有依赖项并正确构建示例。抱歉,我不知道如何运行build.sh,但我复制build.sh的每一行并逐个运行它。之后,我再次尝试
ghc--make Garbler.hs
,但结果没有改变……:(您不需要运行
ghc--make Garbler.hs
。运行build.sh中的所有行应该在当前目录中创建一个可执行文件。您是如何编译该示例的?
#ifdef
需要
CPP
扩展名,该扩展名在此cabal文件中启用()。我想在使用cabal构建此库时,应该先编译它,然后再使用其中一个示例。我只是使用
ghc--make Garbler.hs
。多亏了您的帮助,我在构建中安装了所有程序包,具体取决于库的情况,但它仍然无法工作,错误信息仍然类似于
解析输入错误“#”
。请原谅由于我的无知,我没有使用Haskell的经验。看来构建示例(例如,bit和)的最佳方法是运行build.sh()。此脚本使用cabal安装所有依赖项并正确构建示例。抱歉,我不知道如何运行build.sh,但我复制build.sh的每一行并逐个运行。之后,我再次尝试
ghc--make Garbler.hs
,但结果没有改变……:(您不需要运行
ghc--make Garbler.hs
。运行build.sh中的所有行应该会在当前目录中创建一个可执行文件,并且错误信息已更改。GHC出现以下错误:
未能加载“Network.BSD”的接口。它是隐藏包“Network-2.6.3.2”的成员。
您好,我可以问一下您使用的生成工具吗?修复此错误取决于正在使用的生成工具以{-#语言}添加到CPP中,错误信息已更改。GHC出现以下错误:
未能加载“Network.BSD”的接口。它是隐藏包“Network-2.6.3.2”的成员。
您好,我可以问一下您使用的生成工具吗?修复此错误取决于所使用的生成工具