Haskell 安装本地库

Haskell 安装本地库,haskell,cabal,Haskell,Cabal,如何“安装”一个本地文件(即它在我的硬盘上,而不是在internet上)。hs文件以跨多个程序使用它?具体地说,如果我编辑库,这些编辑应该对所有程序都可用,因此没有复制将库粘贴到每个程序的目录中 要编译我的程序,我仍然希望键入ghc main.hs,而不是一页文件路径 这可能是显而易见的,但我不知道任何阴谋集团 确保安装了正确的Haskell平台,包括cabal。或者,您可以使用,它更现代,在许多方面也更好,但是对于像您这样的简单项目,IMOcabal仍然更实用。以下假设您在典型的Linux机器

如何“安装”一个本地文件(即它在我的硬盘上,而不是在internet上)。hs文件以跨多个程序使用它?具体地说,如果我编辑库,这些编辑应该对所有程序都可用,因此没有复制将库粘贴到每个程序的目录中

要编译我的程序,我仍然希望键入ghc main.hs,而不是一页文件路径

这可能是显而易见的,但我不知道任何阴谋集团

  • 确保安装了正确的Haskell平台,包括
    cabal
    。或者,您可以使用,它更现代,在许多方面也更好,但是对于像您这样的简单项目,IMO
    cabal
    仍然更实用。
    以下假设您在典型的Linux机器上使用
    cabal

  • 如果尚未完成,请根据文件的功能,为文件指定一个有意义的分层模块名称<例如,code>module Video.Demuxing.FFMPEG或
    Data.List.Shuffle.Deterministic
    。假设您将其称为
    Foo.Bar.Baz
    。即文件应以开头

    module Foo.Bar.Baz where
    ... -- start code
    
  • 将文件放入相应的文件夹结构中,即

  • 例如,如果尚未完成,则创建一个新的项目目录

    mkdir /home/Uꜱᴇʀɴᴀᴍᴇ/haskell/foobar
    cd /home/Uꜱᴇʀɴᴀᴍᴇ/haskell/foobar
    
  • 在该项目目录中创建一个子目录
    Foo
    ,在其中创建一个目录
    Bar
    ,并将您的文件作为
    Baz.hs
    放入其中

    mkdir -p Foo/Bar
    cp WʜᴇʀᴇEᴠᴇʀ/Yᴏᴜʀ/Fɪʟᴇ/Wᴀꜱ/Bᴇꜰᴏʀᴇ.hs Foo/Bar/Baz.hs
    
  • 使该文件成为新阴谋集团库的一部分

    cabal init
    
    这会问你几个问题,希望你能清楚选择什么。在大多数情况下,默认设置都可以,在这种情况下,始终只需按enter键

  • 如果还没有,请将所有内容置于版本控制之下。(如果您不知道这是什么,我建议您阅读一些Github教程。您可以跳过这一步,但您越早习惯于某些风投,效果越好。)

  • 在本地安装您的项目

    cabal install
    
  • 如果一切正常,那么您可以在计算机上其他地方存储的Haskell文件中

    import Foo.Bar.Baz
    
    并将您在该项目模块中定义的所有内容都有效。编译时,无需告诉GHC将
    Foo.Bar.Baz
    存储在何处,此时GHC已经注册了它。您还可以在任何地方启动ghci和
    :m+Foo.Bar.Baz


  • 1.了解如何将您的套餐2打包<代码>阴谋集团安装。好的,我会复制粘贴。在询问源目录后,cabal Int抱怨(警告)缺少依赖项——我不导入的库,如Text.Parsec、Crypto.MAC.SipHash、Graphics.UI.Threepenny.Aha。听起来像是一个单独问题的主题。