如何使用 cabal/stack 添加新的可执行文件?
How to add a new executable with cabal/stack?
我想向我的项目添加一个新的可执行文件。但它无法解析 build-depends
处的 MyProject.cabal
。当我从 build-depends
中删除 MyProject
时,它说找不到目标 TestExample
我尝试像这样加载 TestExample
:stack ghci TestExample
name: MyProject
cabal-version: >=1.10
library
hs-source-dirs: src
exposed-modules: MyProject
, MyProject.Other
build-depends: base
, text
executable TestExample
hs-source-dirs: examples
main-is: TestExample.hs
build-depends: base
, MyProject
, MyProject.Other
在 cabal 文件中 build-depends
是包列表,而不是模块列表。
build-depends: base
, MyProject
, MyProject.Other
这里 base
是一个包,MyProject
是你的库包的名称(见 cabal 文件中的 name
字段),但 MyProject.Other
不是包裹。实际上包名称中的点是 not allowed:
Cabal package names can use letters, numbers and hyphens, but not
spaces.
这就是 cabal 无法解析文件的原因。只需从 build-depends
中删除 , MyProject.Other
行,它应该可以工作。
要将源代码加载到解释器中,请使用 stack ghci
。
我想向我的项目添加一个新的可执行文件。但它无法解析 build-depends
处的 MyProject.cabal
。当我从 build-depends
中删除 MyProject
时,它说找不到目标 TestExample
我尝试像这样加载 TestExample
:stack ghci TestExample
name: MyProject
cabal-version: >=1.10
library
hs-source-dirs: src
exposed-modules: MyProject
, MyProject.Other
build-depends: base
, text
executable TestExample
hs-source-dirs: examples
main-is: TestExample.hs
build-depends: base
, MyProject
, MyProject.Other
在 cabal 文件中 build-depends
是包列表,而不是模块列表。
build-depends: base
, MyProject
, MyProject.Other
这里 base
是一个包,MyProject
是你的库包的名称(见 cabal 文件中的 name
字段),但 MyProject.Other
不是包裹。实际上包名称中的点是 not allowed:
Cabal package names can use letters, numbers and hyphens, but not spaces.
这就是 cabal 无法解析文件的原因。只需从 build-depends
中删除 , MyProject.Other
行,它应该可以工作。
要将源代码加载到解释器中,请使用 stack ghci
。