标签: cabal

Cabal在需要分析库时不安装依赖项?

我想用分析编译我的程序,所以我运行:

$ cabal configure --enable-executable-profiling
...
$ cabal build
...
    Could not find module 'Graphics.UI.GLUT':
      Perhaps you havent installed the profiling libraries for package 'GLUT-2.2.2.0'?
...
$ # indeed I have not installed the prof libs for GLUT, so..
$ cabal install -p GLUT --reinstall
...
    Could not find module 'Graphics.Rendering.OpenGL':
      Perhaps you havent installed the profiling libraries for package 'OpenGL-2.4.0.1'?
...
Run Code Online (Sandbox Code Playgroud)

因此,问题是,与cabal通常的欢迎行为不同,cabal无法解析依赖关系并在需要分析库时安装它们.

我可以通过手动解析依赖项来解决它(通过跟踪编译一段时间后出现的错误):

$ cabal install -p OpenGLRaw --reinstall
$ cabal install -p StateVar --reinstall
$ cabal install -p …
Run Code Online (Sandbox Code Playgroud)

profiling haskell cabal

44
推荐指数
3
解决办法
1万
查看次数

如何在Haskell项目中使用DLL?

我想在Haskell项目中使用外部库RDFox.

上下文:我使用GHC 7.10和堆栈在64位上运行Windows和Linux .RDFox是用C++编程的.可以使用Java和Python包装器下载RDFox共享库(.dll,.so).

目的:我想在我的Haskell项目中重用RDFox(.dll,.so)中的编译库,因此我需要为RDFox创建一个Haskell包装器.

问题:对于Haskell来说相对较新,我很难知道从哪里开始.我找到了几个关于这个主题的页面(来自Haskell wiki和StackOverflow),但工作流程和配置对我来说并不清楚.

问题:我想知道:

  1. 如何配置堆栈和cabal以使用外部库,在Windows Linux(不同的机器,相同的存储库)上构建.
  2. 如何在此外部库上配置GHCi以进行交互式测试.
  3. 将Python包装器转换为Haskell是最好的方法吗?我想避免分析RDFox C++代码.

haskell shared-libraries ghc cabal haskell-stack

43
推荐指数
1
解决办法
1333
查看次数

如何使用Cabal设置简单测试?

我有一个Haskell项目和Cabal包描述,允许我构建和安装我的包

$ cabal configure
$ cabal build
$ cabal install

但那怎么样cabal test?Cabal的帮助说用UserHooks配置测试套件,但我该怎么做呢?

testing haskell cabal

41
推荐指数
2
解决办法
7292
查看次数

我可以使用"cabal install"来使用多个内核吗?

有谁知道如何cabal install利用并行性?我正在使用GHC编译,虽然我不知道GHC本身是否可以进行并行构建,但肯定cabal install可以并行运行多个编译,不是吗?至少对于独特的独立包装?

有谁知道它是否可能以及如何做到这一点?

parallel-processing haskell multicore build cabal

39
推荐指数
3
解决办法
4582
查看次数

如何在新的cabal 1.17沙箱中使用GHCi?

我一直在试用cabal head,它支持类似于cabal-dev的沙箱.但是,目前还没有支持cabal-dev ghci等效的,并且显然没有为下一个版本提供支持.

我是否可以使用一些咒语来解决这个问题并得到类似的东西cabal-dev ghci

haskell cabal

39
推荐指数
1
解决办法
6723
查看次数

没有"cabal升级"的最佳解决方法是什么?

我想升级所有包,而不仅仅是特定的包cabal install --upgrade-dependencies.

haskell cabal

37
推荐指数
2
解决办法
9805
查看次数

如何让cabal和nix一起工作

据我所知,Nixcabal沙箱的替代品.我终于设法安装了Nix,但我仍然不明白它如何取代沙盒.

我知道你不需要使用Nix和封装版GHC的cabal; 但是如果你想发布一个软件包,你需要在某个时候用cabal打包它.因此,您需要能够在NIX中编写和测试您的cabal配置.你是怎样做的?

理想情况下,我想要一个类似于cabal沙箱但在NIX中"包含"的环境,这可能吗?事实上,我真正想要的是等效的嵌套沙箱 - 因为我通常使用由多个包组成的项目.

更新我当前的工作流程

目前我在2或3个独立项目(P1,P2,P3)上工作,每个项目由2或3个cabal模块/包组成,假设P1:L11,L12(库)和E11(可执行文件).E11取决于L12,它取决于L11.我主要是从库中拆分可执行文件,因为它们是私有的,并保存在私有git仓库中.

理论上,每个项目都可以拥有自己的沙箱(在其子模块之间共享).我尝试过(有一个L11 L12和E11的普通沙箱),但它很快就会烦人,因为如果修改L11,你就无法重建它,因为E11依赖它,所以我必须首先卸载E11重新编译L11.情况可能并非如此,但我遇到了类似的问题.如果我偶尔修改L11,这样会好的,但在实践中,我更改了E11.

由于共享沙箱不起作用,所以我回到了每个包解决方案的一个沙箱.它工作但不太理想.主要问题是如果我修改L11,我需要编译两次(一次在L11中,然后再在E11中).此外,每次我开始一个新的沙箱时,每个人都知道,我需要等待一段时间才能让所有包下载并重新编译.

因此,通过使用Nix,我正在努力为每个项目设置单独的cabal"环境",这解决了上述所有问题.

希望这更清楚.

haskell cabal nix

33
推荐指数
1
解决办法
4120
查看次数

ghc-pkg和cabal有什么关系?

关于如何在Haskell中创建,安装和使用包,ghc-pkgcabal之间的关系是什么?

他们的角色是什么 - 你何时使用一个,另一个,或同时使用两者?

它们是互补的工具,竞争工具,还是只是做不同工作的工具?

haskell ghc cabal

32
推荐指数
2
解决办法
1555
查看次数

我如何获得ghci来查看我从cabal安装的软件包?

我已经使用cabal安装了这样一个这样的软件包,我可以构建一个依赖于它的程序cabal build.但是当我在ghci中加载相同的程序时,ghci抱怨它"无法找到模块`这样的'".

我很惊讶这不"只是工作".我怎么告诉ghci在哪里找到我用cabal安装的软件包?

这是我的设置:我在Mac OS X 10.6.3上使用GHC 6.10.4,使用Cabal库1.6.0.3版本的cabal-install版本0.6.2.

haskell ghci cabal

30
推荐指数
2
解决办法
8846
查看次数

我升级了cabal-install吗?

我刚从它的官方网站安装了Haskell .之后,按照它的快速入门教程.

我跑:

cabal update
Run Code Online (Sandbox Code Playgroud)

其中显示了此消息:

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
Run Code Online (Sandbox Code Playgroud)

我跑:

cabal install cabal-install
Run Code Online (Sandbox Code Playgroud)

并检查更新是否成功

cabal update
Run Code Online (Sandbox Code Playgroud)

结果,它从一开始就向我显示了相同的消息:

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
Run Code Online (Sandbox Code Playgroud)

那么,我是否升级了cabal-install?如何查看我的cabal的版本?

重要提示:我正在使用64位版本的Mac OS X.

macos haskell cabal

30
推荐指数
4
解决办法
7913
查看次数