2016-08-05 10 views
0

서버 측에서 오디오를 처리하는 데 좋은 오디오 라이브러리를 찾았지만 사실 yesodod의 일부로 만드는 동안 문제가 발생했습니다 (어쩌면 나는 도덕적으로 이해하지 못하기 때문에/스택은 아직 잘).하스켈 - 소스에서 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

편집하는 동안 buiding는 :

[ 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을 사용할 수없는 이유가 있습니까? 타르볼을 사용하는 것보다는 실제 패키지 카탈로그에서 패키지를 사용하는 것이 훨씬 쉽고 안전하며 예측 가능할 것입니다.

당신이 정말로 당신이 발견 라이브러리를 사용하려면 , 당신은 스택을 사용하는 경우, 당신은 당신의 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