10
私はYesodを使用してWebサイトで作業しています。正常なビルドを実行していますが、データベースを確実に埋め込むことができません。私は、データベースを移入二Haskellのプログラムを持っていると私はこのように私の秘密結社のファイルにそれを追加しました:Cabal複数の実行可能ファイル
executable program
if flag(library-only)
Buildable: False
main-is: ../main.hs
hs-source-dirs: dist
build-depends: base
, myproject
, yesod-default
executable init
if flag(library-only)
Buildable: False
main-is: init.hs
hs-source-dirs: Init
build-depends: base
, directory
, persistent
, persistent-sqlite
, text
, myproject
, yesod-default
問題は、私は「秘密結社のビルド」を実行すると、それはときinit.hsのinitを再構築しないということです変更。これを実現するためには何が必要ですか?ここで
は(init.hsを編集した後)の例の端末セッションです:
$ cabal build
Building myproject-0.0.0...
Preprocessing library myproject-0.0.0...
Registering myproject-0.0.0...
$ rm -rf dist/build/myproject/init
$ cabal build
Building myproject-0.0.0...
Preprocessing library myproject-0.0.0...
Registering myproject-0.0.0...
ありがとうございました。
質問タイトルには複数の実行可能ファイルが記述されています。同じカバールファイルにこの問題がない別の実行可能なスタンザがありますか? – Heatsink
'init'は再構築されないのですか?新しい実行可能ファイルを表示するには 'dist/build'を調べなければなりません。新しい実行ファイルを別の場所に置くには' cabal install'を実行する必要があります。 –
上記のキャバルスニペットを更新しました。 Init.hs(Init /ディレクトリ内にある)を変更すると、何も再コンパイルされません。キャバルが実行され、ghcが呼び出されずに終了します。 dist/buildの実行可能ファイルへのシンボリックリンクがあり、コードを実行するために使用しています。 – Gregory