私はこのHaskellプロジェクトに取り組んできました。私はそのためのファイルを持っています。今、私のプロジェクトは単純なインタプリタを実装するライブラリとして構成されています。私はまた、ライブラリを呼び出すための実行可能ファイルにビルドする必要がある非常に短いメインファイルを持っています。私は何をしたいです:このキャバルファイルで再コンパイルしないようにするにはどうすればよいですか?
1)ライブラリをコンパイルし
2モジュールの一部を露出する)私は動作し、これを行うように見える秘密結社ファイルを持っている実行可能
をコンパイルします。問題は、実行可能ファイルをコンパイルするときに、は、ステップ(1)で既にコンパイルされたすべてのモジュールを再コンパイルすることです。。私はそれがなぜこれをするのかよく分かりません - それを止める方法はありますか?
cabalは同じディレクトリにcabalファイルを持っているのが好きではないようで、実際に別のプロジェクトファイルを作成する必要はありません。基本的には1つのファイルをコンパイルするだけなので、2番目のステップです。あなたの実行可能セクションで
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 >= 1.1,
transformers >= 0.2,
text >= 0.10,
text-icu >= 0.6.3,
pretty >= 1,
directory >= 1.1,
filepath >= 1.2
hs-source-dirs: src
exposed-modules: HaSC.IO.Disk,
HaSC.IO.Memory,
HaSC.Exec
other-modules: HaSC.AST,
HaSC.IO,
HaSC.IdentMap,
HaSC.Parse,
HaSC.Regex,
HaSC.Representation,
HaSC.Transformations,
HaSC.Search,
HaSC.State
executable HaSC
GHC-Options: -rtsopts
hs-source-dirs: src
main-is: Main.hs
ありがとうございました。それは今働く。 – chrisdb
ああ、これはどのように実行ファイルを同じキャバルファイルのライブラリに依存させるかです。 – nh2
このような状況に適したプロジェクトレイアウトについては、[runhaskell/ghciで実行されるライブラリ+実行可能ファイルを使用したHaskellカバールプロジェクトの作成方法](http://stackoverflow.com/questions/12305970/how-to- make-a-haskell-cabal-project-with-libraryexecutables-that-still-run-with)を使用します。 – nh2