haskell cabal run将参数传递给程序

l0oc07j2  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(116)

我可以用cabal构建并运行一个简单的Haskell程序

module Main where
import System.Environment ( getArgs )
main :: IO ()
main = do

   -- (input:_:_) <- getArgs
   print "Hello Oren"

字符串
no arguments 被期望时,一切都很好:

$ cabal build 1>/dev/null 2>/dev/null
$ cabal run
Up to date
"Hello Oren"


似乎可以将参数传递给程序:

$ cabal run --help | sed -n '13,16p'
Extra arguments can be passed to the program, but use '--' to separate
arguments for the program from arguments for cabal. The executable is run in
an environment where it can find its data files inplace in the build tree.


但是,我似乎无法让它工作:

$ cabal run -- Oren 13 10              
cabal: Cannot run the package Oren, it is not in this project (either directly
or indirectly). If you want to add it to the project then edit the
cabal.project file.

zengzsys

zengzsys1#

你需要显式地调用你想要运行的目标。例如,如果你只有一个可执行文件,你可以使用exes作为简写:

$ cabal run exes -- Oren 13 10

字符串
关于目标表单的cabal文档部分列出了编写目标的所有可能方法。

相关问题