繁体   English   中英

Cabal / Stack 忽略自定义安装脚本的 ghc 选项

[英]Cabal / Stack ignores ghc-options for custom Setup scripts

我正在尝试让 Stack 在 Arch 系统上工作。 我已经做了通常的:

pacman -S ghc stack cabal-install

然后在~/.stack/config.yaml中放入以下内容,这样就可以使用系统 GHC 和动态库了(上面的包包括 static 库):

system-ghc: true
ghc-options:
  "$everything": -dynamic
configure-options:
  "$everything":
  - -dynamic

但是当我尝试安装某些东西时(即stack install wai )我看到它试图构建一个自定义安装脚本:

/usr/bin/ghc-8.6.5 -rtsopts -threaded -clear-package-db -global-package-db -hide-all-packages -package base -main-is StackSetupShim.mainOverride -package Cabal-2.4.0.1 /home/alba/.stack/setup-exe-src/setup-mPHDZzAJ.hs /home/alba/.stack/setup-exe-src/setup-shim-mPHDZzAJ.hs -o /home/alba/.stack/setup-exe-cache/x86_64-linux/tmp-Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.5

而且我的选择没有得到尊重,因此构建尝试使用 static 库(并且失败)。 有什么方法可以让 Stack/Cabal 在构建Setup.hs时使用某些选项?

编辑:我发现了相关问题; 似乎不可能:

堆栈:根本无法使用没有 static 库的系统 GHC (#3409)
cabal: executable-dynamic: True应该适用于build-type: Custom设置 #1720

相关:在某些情况下,阴谋集团似乎总是会尝试构建 static + dynamic,即使您另有说明。


目前,我最终使用的部分解决方案是使用包装器强制选项。

在 ~/.local/bin/ghc-8.6.5 放:

#!/bin/sh
exec /usr/bin/ghc-8.6.5 -dynamic "$@"

然后:

cd ~/.local/bin
chmod +x ghc-8.6.5
ln -s ghc{-8.6.5,}

ln -s {/usr/bin,.}/ghc-pkg-8.6.5
ln -s {/usr/bin,.}/runghc-8.6.5
ln -s {/usr/bin,.}/haddock-ghc-8.6.5

确保它在您的 PATH 中,并且您对 go 很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM