在不使用堆栈或阴谋的情况下分发的包通常有一组隐含的依赖项。这有时意味着,如果不将软件包安装到ghcs全局包数据库中,直接在所述包上运行ghc将无法工作。
为此,我想使用stack ghc
作为ghc
的替代品,我在shells 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 ghc
作为ghc
的替代品有指导。
我目前拥有的用例是,我得到了一个引用ghc
的make文件,但是我的机器上没有这个命令。
发布于 2017-04-03 22:03:40
如果在stack exec
中执行makefile,它将设置GHC_PACKAGE_PATH环境变量。它还将适当地扩展PATH
。
或者,要在shell中设置此设置,可以这样做。
export GHC_PACKAGE_PATH=`stack path --ghc-package-path`
https://stackoverflow.com/questions/43191044
复制相似问题