无法找到模块Prelude ... dyn库的包基础?

And*_*yuk 9 haskell cabal

尝试按照减少haskell的二进制问题的答案中提出的解决方案,当我使用选项安装时,我不断收到错误:--enable-shared

> cabal install opengl --enable-shared --reinstall   
...
Could not find module `Prelude' 
Perhaps you haven't installed the "dyn" libraries for package `base'?
Run Code Online (Sandbox Code Playgroud)

尝试了一切.我正在使用apt-get installedhaskell-platform(使用ghc 7.4.1),在Ubuntu 12.04,64bit上.

有小费吗?

Dan*_*her 10

似乎Ubuntu的Haskell平台不包含动态库.

您可以尝试安装ghc-dynamic,这应该可行,我假设发行版包装商知道他们在做什么.您可能还需要为平台中包含的几个库安装*-dynamic软件包.

如果它不起作用,我可以做的唯一建议是自己从源代码编译GHC(使用已安装的GHC),或者使用一个带有动态库的vanilla GHC绑定器,据我所知.

两者都需要重新安装(重新编译包括)库(尽管最好从源代码编译vanilla 平台),所以我建议首先尝试使用分发包.

  • Debian(以及Ubuntu)目前只提供ghc附带的库的动态版本,包括`base`,为此安装ghc-dynamic.所有其他库还没有动态版本.我们决定反对它,因为升级后ABI breakagae的风险很高. (2认同)