如果你在一个小集团文件中声明库+可执行部分,而避免了图书馆的双重编译通过把图书馆变成一个hs-source-dirs目录下,你不能用通常运行项目ghci和runhaskell了,特别是如果可执行文件有辅助模块本身.
什么是推荐的项目布局
runhaskell首先,我是在 Haskell 中使用 cabal 和外部包的新手。
我正在尝试使用 MyLib 中的 Graphics.Gloss 包。如果我gloss同时包含build-dependsoflibrary和executable.
这是 cabal 文件的相关部分:
library
exposed-modules: MyLib
build-depends: base ^>=4.13.0.0,
gloss ^>=1.13.1.1
default-language: Haskell2010
executable ray-tracer
main-is: Main.hs
other-modules: MyLib
build-depends: base ^>=4.13.0.0, ray-tracer,
haskell-say ^>=1.0.0.0,
gloss ^>=1.13.1.1
Run Code Online (Sandbox Code Playgroud)
MyLib.hs
module MyLib (someFunc) where
import Graphics.Gloss
someFunc :: IO ()
someFunc = display (InWindow "My Window" (200,200) (10,10)) white (Circle 80)
Run Code Online (Sandbox Code Playgroud)
主文件
module Main where
import qualified MyLib (someFunc)
import HaskellSay (haskellSay)
main :: …Run Code Online (Sandbox Code Playgroud)