相关疑难解决方法(0)

如何减少.cabal文件的build-depends字段中的重复?

这是一个.cabal文件:

Name:                myprogram
Version:             0.1
-- blah blah blah
Cabal-version:       >=1.9.2

Executable myprogram
  HS-source-dirs:       src
  Main-is:              Main.hs
  Build-depends:        attoparsec == 0.10.*,
                        base == 4.3.*,
                        -- long long list of packages

Test-Suite test
  HS-source-dirs:       test, src
  Type:                 exitcode-stdio-1.0
  Main-is:              Main.hs
  Build-depends:        attoparsec == 0.10.*,
                        base == 4.3.*,
                        -- long long list of packages
                        QuickCheck == 2.4.*
Run Code Online (Sandbox Code Playgroud)

有没有什么办法可以用"与可执行文件相同,加上QuickCheck"替换测试套件的长编译依赖包列表?

编辑:版本信息.

  • cabal-dev 0.9
  • cabal-install 0.10.2
  • Cabal图书馆1.10.2.0
  • GHC 7.0.4
  • Haskell平台2011.4.0.0

haskell cabal

58
推荐指数
3
解决办法
4207
查看次数

如何避免在此cabal文件中重新编译?

我一直在研究这个Haskell项目,我有一个cabal文件.现在,我的项目被构建为一个实现简单解释器的库.我还有一个非常短的主文件,需要构建成可执行文件来调用库.我想做的是:

1)编译库并公开一些模块

2)编译可执行文件

我有一个cabal文件,可以工作,似乎这样做.问题是当它编译可执行文件时,它会重新编译已经在步骤(1)中编译的所有模块.我不太明白为什么会这样做 - 有没有办法阻止它,没有创建两个单独的cabal文件?

我真的不想创建两个单独的cabal文件,因为cabal似乎不喜欢在同一目录中同时拥有cabal文件,我真的不想为第二步设置单独的项目目录,因为它基本上只是编译单个文件.

cabal-version:      >= 1.6
build-type:         Simple
name:               HaSC
version:            0.2.3
license:            OtherLicense
category:           Language
author:             Chris B
maintainer:         Chris B
copyright:          Chris B 2010 - 2011
synopsis:           (HA)skell (S)ound (C)hange applier (HaSC) library
description:        HaSC implements a little language for applying sound changes to words
homepage:           http://www.chrisdb.me.uk/redmine/projects/haskell-sound-change
stability:          Alpha
data-files:         doc/HaSCDoc.pdf
license-file:       LICENSE

library
    build-depends:
        base >= 4.3,
        containers >= 0.3,
        parsec >= 3,
        parallel >= 3.1,
        deepseq >= 1.1,
        mtl >= …
Run Code Online (Sandbox Code Playgroud)

haskell cabal

21
推荐指数
1
解决办法
1199
查看次数

找不到模块`Data.Map'

首先,我创建了一个新工作区:

stack new xxxx
stack init
stack build
Run Code Online (Sandbox Code Playgroud)

然后

cd xxx\app
stack ghci
import Data.Map
Run Code Online (Sandbox Code Playgroud)

我可以导入像Data.Char和的其他模块Data.List,但我无法导入Data.Map.GHCi告诉我:

Could not find module 'Data.Map'
 It is a member of the hidden package 'containers-0.5.7.1@containers-0.5.7.1'.`
Run Code Online (Sandbox Code Playgroud)

import haskell module haskell-stack

14
推荐指数
3
解决办法
6806
查看次数

Haskell cabal构建未定义的引用错误和重复重新编译

我的问题分为两部分.首先,当我编译我的项目时,我得到了一个很长的表单错误列表

  (.text+0x137f): undefined reference to `raytrzuAd6RComi0WmBiuT4685WWH_Types_zdfBinaryColor_closure'
Run Code Online (Sandbox Code Playgroud)

完整的错误列表可以在这里找到 产生此错误的代码可以在这里找到.

我使用的是ghc 7.10.1和cabal 1.22.4.0.

我的问题的第二部分是,尽管遵循与此问题相同的cabal结构,尽管可执行文件和库都具有唯一的hs-source-dir并且取决于库,但cabal仍然会为每个cabal构建重新编译库3次.

编辑:就三重编译而言,它是第一次构建.o文件[ 2 of 15] Compiling Types ( src/Types.hs, dist/build/Types.o ).第二次构建由TemplateHaskell和profiling引起的.p_o文件[ 2 of 15] Compiling Types ( src/Types.hs, dist/build/Types.p_o ).

haskell cabal

7
推荐指数
1
解决办法
420
查看次数

标签 统计

haskell ×4

cabal ×3

haskell-stack ×1

import ×1

module ×1