运行后:
stack new my-project
cd my-project
stack setup
stack build
我想将Conduit库添加为依赖项。
我通过编辑了生成的stack new
,stack.yaml
使其具有:
extra-deps:
- conduit-1.2.10
然后,我修改了以下内容my-project.cabal
:
executable my-project-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, my-project
default-language: Haskell2010
至:
executable my-project-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, my-project
, conduit
default-language: Haskell2010
当我尝试stack build
以下操作时:
$cat app/Main.hs
module Main where
import Conduit
import Lib
main :: IO ()
main = someFunc
它失败:
$stack build
mtl-2.2.1: using precompiled package
primitive-0.6.1.0: using precompiled package
stm-2.4.4.1: using precompiled package
transformers-compat-0.5.1.4: using precompiled package
exceptions-0.8.3: using precompiled package
mmorph-1.0.9: using precompiled package
transformers-base-0.4.4: using precompiled package
monad-control-1.0.1.0: using precompiled package
lifted-base-0.2.3.10: using precompiled package
resourcet-1.1.9: using precompiled package
conduit-1.2.10: configure
conduit-1.2.10: build
conduit-1.2.10: copy/register
my-project-0.1.0.0: configure (lib + exe)
Configuring my-project-0.1.0.0...
my-project-0.1.0.0: build (lib + exe)
Preprocessing library my-project-0.1.0.0...
[1 of 1] Compiling Lib ( src/Lib.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Lib.o )
Preprocessing executable 'my-project-exe' for my-project-0.1.0.0...
[1 of 1] Compiling Main ( app/Main.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/my-project-exe/my-project-exe-tmp/Main.o )
/Users/kevinmeredith/Workspace/conduit_sandbox/my-project/app/Main.hs:3:1: error:
Failed to load interface for ‘Conduit’
Use -v to see a list of the files searched for.
Completed 12 action(s).
-- While building package my-project-0.1.0.0 using:
/Users/kevinmeredith/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-osx/Cabal-1.24.2.0 build lib:my-project exe:my-project-exe --ghc-options " -ddump-hi -ddump-to-file"
Process exited with code: ExitFailure 1
如何正确添加conduit
?
将库添加到stack
项目时,是否需要同时编辑stack.yaml
和和/或my-project.cabal
?
如果查看导管的线槽,请注意要导入的模块不是Conduit,而是Data.Conduit。
该Conduit
模块来自conduit-combinators
包装。如果这是您要使用的软件包,请按照以下步骤进行调整import Conduit
:
executable my-project-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, my-project
, conduit-combinators
default-language: Haskell2010
包之间的差异总结如下(摘自项目的自述文件)。
conduit-combinators
:提供大量内置的常用功能conduit
:定义核心数据类型和原始函数conduit-extra
:增加了对许多常见的底层操作的支持旁注:您无需对stack.yaml
文件进行任何更改,因为这两个软件包都可堆叠使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句