8

cabal-installGNU Multi-Precision パッケージ (GMP) がインストールされていないシステムのユーザー空間で、Haskell Platform を Linux にインストールしようとしました。

GHC-6.12.1 をインストールし、LB_LIBRARY_PATHGMP をインストールした lib ディレクトリをポイントするように設定して GHCi を動作させることができましたが、次のステップで問題が発生し、cabal-install作業を開始しました。(静的に) GMP へのリンクを試行し続けました。

ldGMP がシステムにインストールされておらず、ライブラリの場所がわからず、ユーザーがインストールした GMP の場所を ld に指示できる環境変数 (私が認識している) がないため、これは失敗します。 (明らかに) 関連する-Lフラグを提供するように Cabal を構成するように指示する方法はありません。

無駄な検索とハッキングの試みの後、適切なフラグldでシステムを起動する独自のシェル スクリプトをインストールするという、ばかげて単純なアイデアにたどり着きました。ld-L

もちろん、これはシェルスクリプト 101 です。

#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "$@"

このスクリプトをディレクトリにインストールすると、PATHすべて/usr/binの問題が解消されたように見えます。

4

1 に答える 1

10

基本的に、ghc はまだ機能していません。はい、コンパイルはできますが、gmp にリンクする必要があるため、プログラムをリンクできません。

できることは、rts パッケージなどのコア パッケージを編集して、ghc が常に正しい-Lフラグを使用するようにすることです。

ghc-pkg describe rts > rts.pkg
vi rts.pkg                      # add the gmp dir to the `library-dirs` field
sudo ghc-pkg update rts.pkg
于 2010-10-14T07:41:43.127 に答える