Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

HASKELL

Haskell project setting - cabal file 본문

Environment

Haskell project setting - cabal file

__main__ 2019. 1. 27. 12:34

Haskell project setting - cabal file


 Haskell project 생성하고 난 후에 코딩을 했다. 그리고 stack build, stack exec <project name>을 하면 결과가 출력된다. 그런데  Main.hs 파일 외에 다른 파일들을 만들고, 그 파일들을 Main.hs에서 import 하려면 어떻게 해야 할까? 그냥 아무런 작업을 안 해도 자동으로 잘 될까? 어차피 stack new <project name> 이란 명령으로 만든 프로젝트니까, 그 안에서 여러 파일들이 자동으로 연결될까? 그렇지 않다. 


 만들어진 프로젝트를 살펴보면, <project name>.cabal 이란 파일이 있다. 만들었던 프로젝트의 이름이 myproject였다면, myproject.cabal 이란 파일이 만들어져 있다. 내용을 유심히 뜯어보면, (1) Main.hs 란 파일이 app 폴더에 있는 프로젝트를 실행하는 main 파일이라는 것,  (2) library는 src에 있고 프로젝트에 사용되는 module 은 Lib 라는 이름의 하나의 module 뿐이라는 것 등을 알 수 있다. 

library
  exposed-modules:
      Lib                -- Lib 모듈을 노출시켜 프로젝트가 이용할 수 있게 하겠다.
  other-modules:
      Paths_myhs
  hs-source-dirs:
      src                -- library 파일들은 src 폴더에 있다.
  build-depends:
      base >=4.7 && <5
  default-language: Haskell2010

executable myhs-exe
  main-is: Main.hs       -- Main.hs 파일이 프로젝트의 중심 파일이다. 
  other-modules:
      Paths_myhs
  hs-source-dirs:
      app                -- Main.hs 파일은 app 폴더에 있다. 
  ghc-options: -threaded -rtsopts -with-rtsopts=-N
  build-depends:
      base >=4.7 && <5
    , myhs               -- built-in base package와 myhs(자신)을 참고해서 build 해라.
  default-language: Haskell2010

 

 

'Environment' 카테고리의 다른 글

Emacs + Haskell-Mode  (0) 2020.11.23
Docker for haskell  (0) 2019.03.19
How to Uninstall Old GHC  (0) 2019.01.11
Haskell Stack: Golbal vs. Project  (0) 2018.09.16
HaskellDevEnv: Project Management  (0) 2018.09.04
Comments