将GHC中的单独项目联系起来

Sam*_*mee 5 haskell ghc

好的,这应该很简单,但似乎无法解决这个问题.我有两个项目,ProjectA和ProjectB.ProjectB依赖于旧项目ProjectA.现在我想构建ProjectB.我现在不想更改ProjectA的目录结构.问题是,我总是在ProjectA中使用-outputdir bin.

ProjectA看起来像这样:

ProjectA/
  bin/
    (*.o, *.hi in proper paths, sometimes also *.p_o and *.p_hi)
  Foo/
    ModuleX.hs
  ModuleA.hs
  ModuleB.hs
Run Code Online (Sandbox Code Playgroud)

现在我有一个与ProjectB不同的文件夹,它有自己独立的-outputdir.我只需要链接到旧的项目对象文件(不重新编译ProjectA文件).我意识到我可能会把ProjectA搞砸......但是没有更简单的方法吗?

Mat*_*hid 2

“简单的方法”是使用 Cabal。一旦你安装了项目 A,你就再也不用担心它到底存储在哪里了;GHC 就会找到它。

如果您不想这样做,请尝试使用-i切换到 GHC 来告诉在哪些文件夹中搜索您编译的内容。

http://www.haskell.org/ghc/docs/7.0.1/html/users_guide/separate-compilation.html

  • @Savui,如果你不想污染你的`~/.cabal`,请查看[cabal-dev](http://hackage.haskell.org/package/cabal-dev) (3认同)