2017-04-03 71 views
0

不使用堆棧或cabal而分發的軟件包通常具有一組隱含的依賴關係。這有時意味着如果沒有將軟件包安裝到ghcs全局包數據庫中,直接在所述包上運行ghc將不起作用。使用堆棧ghc作爲ghc的替換

我想用stack ghc作爲替代ghc爲此我已經定義了我的貝殼init文件如下:

export PATH="`stack path --compiler-bin`:$PATH" 

現在命令ghc將使用堆棧的GHC - 它不過和stack ghc一樣。首先,它不會加載作爲可以用下面的命令可以看出,「快照」和「全球項目」包數據庫:

$ ghc -v 
Glasgow Haskell Compiler, Version 8.0.1, stage 2 booted by GHC version 7.10.3 
Using binary package database: ~/.stack/programs/x86_64-linux/ghc-nopie-8.0.1/lib/ghc-8.0.1/package.conf.d/package.cache 
... 
$ stack ghc -- -v 
Glasgow Haskell Compiler, Version 8.0.1, stage 2 booted by GHC version 7.10.3 
Using binary package database: ~/.stack/programs/x86_64-linux/ghc-nopie-8.0.1/lib/ghc-8.0.1/package.conf.d/package.cache 
Using binary package database: ~/.stack/snapshots/x86_64-linux-nopie/lts-7.9/8.0.1/pkgdb/package.cache 
Using binary package database: ~/.stack/global-project/.stack-work/install/x86_64-linux-nopie/lts-7.9/8.0.1/pkgdb/package.cache 
... 

有沒有人對如何使用stack ghcghc的替代來實現指導。

我現在使用的用例是我給了一個指向ghc的make-file,但我的機器上沒有這個命令。

回答

1

如果您在stack exec內執行makefile,它將設置GHC_PACKAGE_PATH環境變量。它也將適當地擴展PATH

另外,有這一套在你的shell你可以做

export GHC_PACKAGE_PATH=`stack path --ghc-package-path`