我一直在尝试安装Haskell平台,并cabal-install在没有安装GNU Multi-Precision软件包(GMP)的系统上在用户空间的Linux上安装.
我设法安装了GHC-6.12.1并且GHCi通过设置LB_LIBRARY_PATH指向我安装GMP的lib目录cabal-install来工作,但是在下一步遇到问题,开始工作.它一直试图(静态地)链接到GMP.
这失败是因为GMP没有安装在系统中并且ld没有找到库的位置,并且没有环境变量(我知道)可以告诉ld在哪里可以找到用户安装的GMP,以及(显然)没有办法告诉配置Cabal提供相关-L标志.
经过多次徒劳无功的搜索和黑客攻击后,我找到了一个荒谬的简单想法,即安装我自己的ldshell脚本,调用ld具有相应-L标志的系统.
这是shell脚本101,当然:
#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "$@"
Run Code Online (Sandbox Code Playgroud)
有了这个脚本安装在我PATH之前的目录中/usr/bin所有的问题似乎已经消失了.
我下载了哈斯克尔平台的源从这里:http://www.haskell.org/platform/linux.html,安装GHC和/.configure做到了.但是,当我做sudo make时,我收到以下错误:
Preprocessing library HUnit-1.2.4.2...
Test/HUnit/Base.hs:1:1:
Could not find module `Prelude'
Perhaps you haven't installed the profiling libraries for package `base'?
Use -v to see a list of the files searched for.
Error:
Building the HUnit-1.2.4.2 package failed
make: *** [build.stamp] Error 2
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
我正在尝试在Ubuntu 12.04.1 LTS上安装
我刚刚做了brew install haskell-platform,它安装了Glorious Glasgow Haskell编译系统,版本7.6.3.
$ cabal --version
cabal-install version 1.16.0.2
using version 1.16.0 of the Cabal library
$ cabal update
Downloading the latest package list from hackage.haskell.org
Note: there is a new version of cabal-install available.
To upgrade, run: cabal install cabal-install
$ cabal install cabal-install
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: cabal-install-1.20.0.3
rejecting: zlib-0.5.4.1, 0.5.4.0, 0.5.3.3, 0.5.3.2, 0.5.3.1, 0.5.2.0, 0.5.0.0,
0.4.0.4, 0.4.0.3, 0.4.0.2, 0.4.0.1, 0.4, 0.3, 0.2 (global constraint requires
installed instance) …Run Code Online (Sandbox Code Playgroud) 我最近将我的操作系统升级到Snow Leopard,这打破了我的GHC.我能够通过在/ usr/bin/ghc中添加32位编译的标志在一台机器上修复它(类似于-optl -m32 -opta -m32 -optc -m32,从这里收集).现在我不能让它为我的另一台支持64位的机器生成64位二进制文件.32位标志中断,删除它们也会中断.有小费吗?
当我尝试编译时,我得到这样的东西:
/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:212:0:
32-bit absolute addressing is not supported for x86-64
/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:212:0:
cannot do signed 4 byte relocation
/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:215:0:
32-bit absolute addressing is not supported for x86-64
/var/folders/az/az3Ef9shFZq6RajmTEBwu++++TI/-Tmp-//ghc8006_0/ghc8006_0.s:215:0:
cannot do signed 4 byte relocation
Run Code Online (Sandbox Code Playgroud)
谢谢!
与其他程序员共享Haskell库的标准方法是创建一个Cabal包并将其上传到http://hackage.haskell.org.我写了一个我想分享的图书馆,我已经成功创建了一个Cabal软件包,使用在线指南来创建cabal文件.我已经构建了包并在本地安装 - 工作正常.现在我想将它上传到Hackage.但是cabal upload想要一个.tar.gz文件.有大量的Cabal文档,我找不到应该进入这个.tar.gz或者我应该如何创建它.
谁知道,或者知道我在哪里可以找到,如何创建一个能够正常工作的.tar.gz cabal upload?
我在使用ghc构建共享库时遇到问题,我认为我需要使用--enable-shared重建我的haskell软件包,是否有一种简单的方法可以使用标志重新构建我的所有软件包--enable-shared ?
我在共享的Linux服务器上,我无法安装软件.从源代码安装OpenGL似乎是一个很大的痛苦(我发现Mesa依赖于libxml2后停止了),而且我没有在任何Haskell程序中使用它.
如何在Haskell平台中禁用OpenGL?我周围的配置检查了通过删除这些,但是当我添加--disable-OpenGLRaw或--without-OpenGLRaw到./configure选项,它说:"无法识别的选项",实际上并没有禁用的软件包.
此外,我尝试使用cabal-install bootstrap,但由于某些原因cabal-install 0.14.0不适用于GHC 7.6.3.
非常感谢你!!
haskell中的记录或简单ADT几乎等同于盒装元组.有没有办法(理想情况下是一些花哨的扩展或来自haksell平台的lib)允许在这种类型和元组之间进行转换?
我(相当)是haskell的新手,我正在尝试在Haskell中构建一些报告工具.这涉及读/写csv文件和数据库表.使用元组的事情非常简单,但在使用普通类时需要一些锅炉板.样板接缝几乎完全相同,但我没有找到一个很好的方法只做一次,除了可能做转换(数据< - >元组)并使用从元组到CSV /表的本机转换.
到目前为止我得到的所有答案都假定我需要一些完全通用的东西,我想要元组.我不想要元组,我有元组,我不想要它们,因此需要转换它们.实际上我只想减少锅炉板(到0 :-)),但我不需要为每种类型都使用相同的功能.
例如,我可以通过展开其构造函数轻松地将元组转换为任何元素.问题是我需要uncurryN,我在任何地方都找不到(除了模板haskell教程).反过来更难做到.
我不是要求一个解决方案(尽管我得到的所有答案都很棒,因为我不熟悉Haskell中不同的元编程方式)但更多,因为我不喜欢重新发明轮子,如果轮子已经存在(例如,这个不连续的,可以用手写到20并包装在漂亮的包装中)
显然存在一个不成熟的包,但它仍然解决了一半的问题.
我在我的mac上安装了Haskell平台7.10.3,当它完成时它说它已检测到旧版本的GHC并卸载它们,但我该怎么做?
我正在使用OS X 10.11.3的macbook air.
我跟着HaskellWiki,但我仍然不知道如何启动它.
我试过了:
yi
ghci yi
import Yi
main
Run Code Online (Sandbox Code Playgroud)