4

コードをGHC7.6.1に移行するのと並行して、Windowsで64ビットGHCのテストを行っています。これは、GHC 7.6.1の32ビットバージョンと64ビットバージョンの両方がインストールされていることを意味します。したがって、64ビット固有の問題と7.6.1の一般的な問題を区別できます。

私のcabal設定ファイル($APPDATA/cabal/config)には

libsubdir: $pkgid\$compiler

これは、私がインストールするパッケージの32ビットバージョンと64ビットバージョンの両方が、たとえばzip-archive-0.1.1.8 / ghc-7.6.1になり、相互に上書きすることを意味します。

32ビットと64ビットを区別するような変数$compiler、またはパッケージを分離するために使用できる他の手法はありますか?

4

2 に答える 2

3

最近の十分な数のCabalバージョンで使用$arch(および/または$os)できます。これは、次のような文字列に置き換えられます(詳細については、Cabalのドキュメントセクション「シンプルビルドシステムのパス変数」を参照してください) 。x86_64

于 2012-10-01T13:12:47.247 に答える
2

これはおそらく正しい方法ではありませんが、32ビットおよび64ビットのオペレーティングシステムで起動するラップトップでは、これに対処するためにハックを設定しています。基本的に、私は.cabal-i386と.cabal-x86_64の2つのディレクトリを持っており、シンボリックリンクを介して前後に切り替えます。私の.zshrcで:

CabalDir=$HOME/.cabal-`uname -m`
if [ ! -d $CabalDir]; then
    echo WARNING: no cabal directory yet for `uname -m`, creating one.
    mkdir -p $CabalDir/{bin,lib,logs,share}
fi
ln -sft $HOME/.cabal $CabalDir/{bin,lib,logs,share}

おそらく、いくつかの同様の戦略を採用して、いくつかのシンボリックリンク(またはWindowsのシンボリックリンクの類似物)を切り替えるための短いコマンドを自分に与えることができます。

于 2012-09-12T18:29:22.333 に答える