好的,这应该很简单,但是似乎无法弄清楚。我有两个项目,ProjectA和ProjectB。 ProjectB依赖于旧项目ProjectA。现在我要构建ProjectB。而且我现在不想更改ProjectA的目录结构。问题是,我始终将-outputdir bin与ProjectA一起使用。

ProjectA看起来像这样:

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

现在,ProjectB具有另一个文件夹,它具有自己的单独的-outputdir。我只需要链接到旧的项目对象文件(无需重新编译ProjectA文件)。我意识到我可能可以对ProjectA进行盲目化...但是没有更简单的方法吗?

最佳答案

“简单的方法”是使用Cabal。一旦安装了Project A,您就不必再担心它实际存储在什么地方了。 GHC会找到它。

如果您不想执行此操作,请尝试使用GHC的-i开关告诉要搜索哪些文件夹的已编译内容。

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

关于haskell - 在GHC中链接单独的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14884561/

10-11 04:22