2017-06-09 28 views
1

我試圖用Haskell的堆棧設置一個項目,但使用我有一個-fPIC錯誤 GitHub issue哈斯克爾堆棧不使用系統GHC

要繞過該子卡的問題,我堆棧提供GHC試圖使用提供GHC使用7.10.3版本(堆棧當前使用8.0.2)提供的包管理器

當我試圖強制堆棧使用systm ghc它簡直忽略了我。 我試圖覆蓋使用/home/user/.stack/config.yaml和{project} /stack.yaml system-ghc:true選項...但堆棧使用8.0.2版本的設置。

我錯過了什麼嗎?

TL; DR

堆棧忽略系統GHC:true選項

我運行過程中出現沙巴翁16


「哈斯克爾引物」 是項目的名稱

stack list-dependencies 

base 4.9.1.0 
ghc-prim 0.5.0.0 
haskell-primer 0.1.0.0 
integer-gmp 1.0.0.1 
rts 1.0 
+0

我認爲(不確定)如果依賴關係解析器發現它適合,那麼堆棧將只使用系統ghc。檢查你的一個依賴關係是否需要ghc8。 –

+0

thx的評論。 我和堆棧列表依賴 ' 堆棧列表依賴 基地檢查4.9.1.0 GHC-整潔0.5.0.0 哈斯克爾底漆0.1.0.0 整數GMP 1.0.0.1 RTS 1.0' –

+0

壓倒一切解析器INTO stack.yaml似乎工作。我編輯它以使用lts-6.35,現在它映射到system-ghc。 但是......我不知道這是否是解決問題的辦法。我不想手動編輯我所有的stack.yaml文件... –

回答

6

設置system-ghc: true允許堆棧使用系統GHC,如果它符合解析器的約束。它不會force堆棧使用系統GHC,如果它不符合約束。如果您的解析器需要GHC 8,但是您的系統具有GHC 7,那麼Stack不會使用您的系統GHC,無論您給出的值是多少system-ghc。相反,如果system-ghc: false那麼堆棧將從來沒有使用系統GHC,無論其版本是否匹配。

Stack FAQ,重點煤礦:

如果你想堆使用您的系統GHC的安裝,使用--system-ghc標誌或運行堆棧配置設置system-ghc --global true使堆棧通過檢查你的PATH一個合適的GHC默認。

請注意,堆棧只能使用系統GHC安裝,如果其版本與當前項目的配置兼容,特別是resolver設置