如何访问文件中的外部包

问题描述 投票:0回答:1

我遇到了 youtube video,用于通过在项目中的

.cabal
中指定来访问外部包。但如何访问单个文件中的包。

假设我想写一个简单的文件并在其中做一些事情。我可以导入外部包,例如

System.Random
吗?我可以使用
ghc
编译它而不出错吗?

注意:在本例中我没有使用该项目。所以我没有使用

cabal
。只有单个文件并使用 ghc 编译或在 ghci 中加载

haskell
1个回答
1
投票

System.Random
模块[Hackage]
random
[Hackage]
中定义。

您可以将

random
添加到 cabal 文件中的依赖项中:

-- …
library
  -- …
  build-depends:
      base >= 4.7 && < 5
    , random >=1.0 && <2.0
  -- …

如果您使用

cabal build
或 Haskell 堆栈构建它,那么
stack build
,它将下载包并将其暴露给项目的模块,以便您可以导入它。

在这种情况下我没有使用该项目。所以我没有使用 cabal。只有单个文件并使用 ghc 编译或在 ghci 中加载

如果您不使用

cabal
(或基本构建于
cabal
之上的 Haskell 堆栈等工具),则不需要使用
.cabal
文件。

在这种情况下,您可以使用要公开的包列表来调用编译器:

ghc -package random MyFile.hs

然后它会在包数据库中查找,您可以定义一个不同的数据库,您可以在其中下载并构建要公开给项目的包。

© www.soinside.com 2019 - 2024. All rights reserved.