我写了一个简单的模块叫做Test:
module Test (main) where
main =
putStrLn "Hello"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试通过以下命令行编译它时:
ghc Test.hs -o my-program
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[1 of 1] Compiling Test ( Test.hs, Test.o )
<no location info>: error:
output was redirected with -o, but no output will be generated because there is no Main module.
Run Code Online (Sandbox Code Playgroud) 我在app文件夹中有两个文件
app/
|-- Main.hs
|-- SomeFunc2.hs
Run Code Online (Sandbox Code Playgroud)
该SomeFunc2.hs仅仅是打印不同的字符串
module SomeFunc2 where
import Lib
main :: IO ()
main = putStrLn "someFunc2"
Run Code Online (Sandbox Code Playgroud)
当我package.yaml像这样定义多个可执行文件时
executables:
multiexes-exe:
main: Main.hs
source-dirs: app
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- multiexes
somefunc2-exe:
main: SomeFunc2.hs
source-dirs: app
ghc-options:
- -threaded
- -rtsopts
- -with-rtsopts=-N
dependencies:
- multiexes
Run Code Online (Sandbox Code Playgroud)
我有错误:
? stack build
Building all executables for `multiexes' once. After a successful build of all of them, only specified executables will …Run Code Online (Sandbox Code Playgroud)