我正在对Windows上的64位GHC进行一些测试,同时将代码迁移到GHC 7.6.1。这意味着我安装了32位和64位版本的GHC 7.6.1,因此我可以将64位特定问题与7.6.1的一般问题区分开来。
我的cabal配置文件($APPDATA/cabal/config
)包含
libsubdir: $pkgid\$compiler
这意味着我安装的32位和64位版本的软件包最终都在例如zip-archive-0.1.1.8 / ghc-7.6.1,并相互覆盖。
是否有像$compiler
之类的变量,但区分32位和64位,或者我可以使用其他技术来保持包装分开?
答案 0 :(得分:3)
您可以将$arch
(和/或$os
)与recent enough Cabal versions一起使用,该x86_64
将替换为{{1}}等字符串(请参阅Cabal文档部分{{3更多细节)
答案 1 :(得分:2)
这可能不是正确的方法,但在我的笔记本电脑上,我启动了32位和64位操作系统,我有一个黑客设置来处理这个问题。基本上,我有两个目录,.cabal-i386和.cabal-x86_64,我通过符号链接来回切换。在我的.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的符号链接模拟)。