获取GHC编译程序的cabal版本?

tin*_*lyx 1 haskell cabal

如果我使用GHC编译可执行文件cabal build,有没有办法.cabalmain函数内部获取项目文件中所述的版本号?

例如,我们可以使用以下命令获取主程序名称:

import System.Environment
main = do
    progName <- getProgName
    ...
Run Code Online (Sandbox Code Playgroud)

我们能以某种方式编写类似的函数getProgVer来获取cabal定义的版本号吗?

ada*_*mse 5

是的你可以:

import Paths_PKGNAME

main = print version
Run Code Online (Sandbox Code Playgroud)

Cabal将创建一个模块Paths_PKGNAME(PKGNAME包的名称),其中包含包的版本.用户指南中的更多信息.