2016-08-05 14 views
0

サーバー側でオーディオを処理するのに良いオーディオライブラリを見つけましたが、実際にyesodの一部にしている間に問題が発生しています(おそらく、 /スタックは非常にうまくいっています)。Haskell - ソースからYesodプロジェクトにパッケージを追加する

私はこのモジュールをSound.File.Sndfileに含めることを試みており、ソースファイルはhttp://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27.tar.gzからダウンロードしました。それを達成するためのステップはどれですか?

編集

私は、これは

runhaskell Setup.hs configure --ghc 
runhaskell Setup.hs build 
runhaskell Setup.hs install 

ステップ作ってみました。しかし、それはSetup.hsファイルを持っていません。アレクシスキングにより示唆されるように、私は依存関係hsndfileを追加したが、私は次のエラーを取得しています2

EDITしばらく建物高:

[ 1 of 59] Compiling Enums   (Enums.hs, .stack-work/dist/x86_64-linux/Cabal-1.22.7.0/build/Enums.o) 
<command line>: can't load .so/.DLL for: libsndfile.so (libsndfile.so: cannot open shared object file: No such file or directory) 

-- While building package Fastwork-0.0.0 using: 
     /home/geppetto/.stack/setup-exe-cache/x86_64-linux/setup-Simple-Cabal-1.22.7.0-ghc-7.10.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-1.22.7.0 build lib:Fastwork exe:Fastwork --ghc-options " -ddump-hi -ddump-to-file" 
    Process exited with code: ExitFailure 1 

私はlibsndfile-1.0.25.tar.gzをダウンロードしていると私はそれを抽出し、 ./configure、make、make installを実行しました。私がYesodプロジェクトでstack buildをやり直そうとしたとき、エラーは同じでした。私は何が欠けていますか?

答えて

2

any of these libraries that are already on Hackageを使用できない理由はありますか?実際のパッケージカタログのパッケージをtarballだけで使用するのではなく、もっと簡単に、より安全に、より予測可能になるでしょう。あなたはstack.yamlファイルのpackagesセクションに追加することができ、

あなたもし本当には、あなたが発見したライブラリを使用したい、とあなたは、スタックを使用している:

packages: 
- '.' 
- location: http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.27.tar.gz 
    extra-dep: true 

その後は、依存関係を追加することができますlibsndfile.cabalファイルしかし、私は任意のURLからのパッケージに依存しているので気をつけているので、少なくとも、そのパッケージをダウンロードして解凍してしまうでしょう。次に、あなただけの代わりに、リモートURLのローカルパスを指すことができます。

packages: 
- '.' 
- location: ./some/path/to/libsndfile 
    extra-dep: true 

詳細については、documentation for the stack.yaml fileを参照してください。

+0

私はこの他の方法を試しますが、ソースからのものである必要はありません – FtheBuilder

関連する問題