簡體   English   中英

如何在使用ghci時重用cabal編譯的模塊

[英]how to reuse cabal compiled modules when using ghci

我有一個相當大的haskell項目,並且在某些文件上運行ghci可能需要在得到提示之前編譯幾十個或幾百個模塊,這可能需要幾分鍾。 我正在使用cabal,所以我通常已經在dist /下編譯了目標文件。 但是ghci只查找源.hs文件旁邊的.o文件; 它不知道cabal的dist /。 是否有任何簡單而好的方法使ghci加載這些目標文件而不是自己重新編譯所有內容?

我要求一個簡單而好的方法,因為我有復雜而丑陋的方法。 :)例如,這將使ghci重用cabal編譯的模塊。 我通過復制和修改cabal運行ghc的方式想出了這個命令行,確保它設置的一切與最后的cabal構建相同,這是確保ghci加載模塊所必需的。

ghci -package-conf dist / package.conf.inplace -i -idist / build / git-annex / git-annex-tmp -i。 -idist / build / autogen -Idist / build / autogen -Idist / build / git-annex / git-annex-tmp -optP-include -optPdist / build / autogen / cabal_macros.h -odir dist / build / git-annex / git-annex-tmp -hidir dist / build / git-annex / git-annex-tmp -stubdir dist / build / git-annex / git-annex-tmp -XHaskell98 dist / build / git-annex / git-annex-tmp /Utility/libdiskfree.o dist / build / git-annex / git-annex-tmp / Utility / libmounts.o

在我看來,“cabal ghci”應該可以計算這個命令行並運行它,或者可能有一個我不知道的工具已經這樣做了。

您可以將odir和ohi選項設置為指向cabal構建目錄,如下所示: http//www.haskell.org/ghc/docs/7.6.1/html/users_guide/separate-compilation.html#output-files

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM