2017-09-17 6 views
2

왜 이것이 작동하지 않는지 약간 혼란 스럽습니다.스택을 사용할 때 System.Directory를 가져올 수 없습니다.

System.Directory를 가져 오는 작은 프로그램이 있습니다. 커맨드 라인에서 runhaskell과 함께 실행하면 컴파일되어 예상대로 출력됩니다. 내가 스택과 같은 프로그램을 사용하는 경우

나는

그것은 숨겨진 패키지 '디렉토리 - 1.3.0.0'의 멤버 인 'System.Directory'에 대한 인터페이스를로드 할 수 없습니다라는 메시지가 표시됩니다. 검색된 파일 목록을 보려면 -v를 사용하십시오.

내가 그것을 runhaskell 작업을 왜 이해 해달라고하지만 난 당신이 제공하는 정보와 함께 stack ghci

+0

스택은 운영 체제 환경을 사용하지 않습니다. Cabal 파일의'build-depends' 섹션에'direcotry'를 추가하면됩니다. – palik

답변

2

를 사용하지 않을 때, 난 단지 ...

를 추측을 시도 할 수 있습니다 당신이 (세계적으로) directory 있다고 생각 cabal install directory 또는 시스템 패키지로 설치 - 이는 runhaskell myscript.hs을 설명합니다.

stack을 사용하는 경우 다음과 같은 옵션이 있습니다.

  1. 는 음모 패키지, 빌드 부분을 의존하는 stack.yaml를 작성, directory을 추가하고 프로젝트 디렉토리 내부 stack ghci를 실행합니다.

  2. 사용 stack ghci --package=directory myscript.hs

+0

''ghc-pkg list'에서 runhaskell이 사용할 패키지가 모두 설치되어 있다고 생각합니다. 나는 그 모든 것이 거기에 있다는 것을 깨닫지 못했습니다. 감사! – Matthew