相关疑难解决方法(0)

如何使用仍然使用runhaskell/ghci运行的库+可执行文件来创建Haskell cabal项目?

如果你在一个小集团文件中声明库+可执行部分,而避免了图书馆的双重编译通过把图书馆变成一个hs-source-dirs目录下,你不能用通常运行项目ghcirunhaskell了,特别是如果可执行文件有辅助模块本身.

什么是推荐的项目布局

  • 只构建一次所需的东西
  • 允许使用 runhaskell
  • 有一个干净的结构,没有黑客?

haskell ghci cabal runhaskell

54
推荐指数
1
解决办法
7055
查看次数

消除cabal文件中的重复

我的.cabal文件的许多节中经常有类似的属性.例如

Library x
    ...
    ghc-options:
       -O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns
       -fno-warn-name-shadowing

Executable y
    ...
    ghc-options:
       -O2 -Wall -fno-warn-missing-signatures -fwarn-incomplete-patterns
       -fno-warn-name-shadowing
Run Code Online (Sandbox Code Playgroud)

保持一致是繁琐且容易出错的.有没有更好的办法?

甚至更棘手的是当字段相似但不完全相同时,例如当我有几个具有共同构建依赖性但是变化很小的可执行文件时.

haskell cabal

27
推荐指数
1
解决办法
447
查看次数

创建测试套件时出错:"无法满足-package-id"

我正在尝试HaskSplit在我的.cabal配置中为我的项目创建一个测试套件:

-- Initial HaskSplit.cabal generated by cabal init.  For further 
-- documentation, see http://haskell.org/cabal/users-guide/

name:                HaskSplit
version:             0.1.0.0
synopsis:            Haskell Implementation of Shamir's Secret Sharing Scheme
-- description:         
license:             MIT
license-file:        LICENSE
author:              
maintainer:          
-- copyright:           
category:            Security
build-type:          Simple
-- extra-source-files:  
cabal-version:       >=1.10

executable HaskSplit
  main-is:             Main.hs
  default-language:    Haskell2010
  -- other-modules:       
  other-extensions:    TemplateHaskell, NoImplicitPrelude, RankNTypes, OverloadedStrings
  build-depends:       base >=4.6 && <4.7,
                       resourcet >=1.1 && <1.2,
                       bytestring >=0.10 && <0.11,
                       conduit-extra >=1.1 && <1.2,
                       vector >=0.10 && <0.11, …
Run Code Online (Sandbox Code Playgroud)

haskell cabal

8
推荐指数
1
解决办法
1331
查看次数

当你依赖于cabal包时,它似乎在所有cabal节中依赖

我用两个目标,一个库和一个可执行文件创建了我自己的cabal包(我们称之为package-1).库部分有一个构建依赖列表,可执行文件有另一个构建依赖列表,它更大.

现在我创建package-2,它在build-depends部分列出了package-1.我想只引入package-1 的目标中列出的依赖项.但似乎在把所有的包1的所有部分,包括依赖的可执行目标列出的依赖关系.

有没有办法将依赖图修剪为package-1中的库,或者我是否必须将该库目标分解为单独的独立包?

haskell cabal

8
推荐指数
1
解决办法
89
查看次数

标签 统计

cabal ×4

haskell ×4

ghci ×1

runhaskell ×1