我正在尝试在Yesod中编写一个返回应用程序版本的GET
处理程序。
以下是处理程序的Haskell代码:
{-# LANGUAGE OverloadedStrings #-}
module Handler.Version where
import qualified Data.Text as T
import Data.Version (showVersion)
import Import
import Paths_MyApp (version)
getVersionR :: Handler Value
getVersionR = return $ object
[ "version" .= T.pack (showVersion version) ]
我在Application.hs
添加了一个导入:
import Handler.Version
和routes
中的一行:
/version VersionR GET
但运行cabal install
时出现以下错误:
.../MyApp/dist/build/libHSMyApp-0.1.0.a(Version.o):(.text+0xda5):
undefined reference to `MyAppszm0zi1zi0_PathszuMyApp_version1_closure'
我怀疑.cabal
文件中缺少某些内容,但我不确定是什么。我在Handler.Version
部分添加了exposed-modules
,但我想知道是否需要以某种方式提及Paths_*
文件。
答案 0 :(得分:2)
解决:
我添加了
Paths_MyApp
到exposed_modules
文件的.cabal
部分。它现在可以正确编译。