2017-02-05 2 views
1

GHC의 cabal build을 사용하여 실행 파일을 컴파일하는 경우 main 함수 내부의 .cabal 파일에 명시된대로 버전 번호를 가져 오는 방법이 있습니까?GHC 컴파일 된 프로그램의 카발 버전 받기?

import System.Environment 
main = do 
    progName <- getProgName 
    ... 

우리가 어떻게 든 유사한 기능 getProgVer를 쓸 수 도당 정의 버전 번호를 얻기 위해 :

예를 들어, 우리가 사용하는 주요 프로그램 이름을 얻을 수 있나요?

답변

5

예를 수행 할 수 있습니다

import Paths_PKGNAME 

main = print version 

음모가 무엇보다도 패키지의 버전이 포함되어 있습니다 (PKGNAME는 패키지의 이름입니다) 모듈 Paths_PKGNAME를 생성합니다. users guide에 대한 자세한 정보

+0

감사합니다. '.cabal' 파일에'PKGNAME'에 사용할 수있는 특정 필드가 있습니까? 나는'Name :'과'executable :'에서 값을 시도했다. 그러나 GHC는 인터페이스를로드 할 수 없다고 말합니다. – tinlyx

+0

.cabal의'name :'필드에'-'가'_'으로 대체되었습니다. – adamse

+0

매우 좋습니다! 또 하나의 질문 :'import Paths_PKGNAME'을 추가 한 후에,'cabal build'가 성공적으로 빌드 될 수 있습니다. 그러나 GHCi는''Paths _... '인터페이스를로드하지 못했습니다. 이 문제를 해결할 수있는 방법이 있습니까? – tinlyx