我有这两个模块:
module Server where
import Data.JSON.Schema.Generic (gSchema)
import Data.JSON.Schema.Types (JSONSchema(schema))
import Two
instance JSONSchema Data where
schema = gSchema
main :: IO ()
main = undefined
{-# LANGUAGE DeriveGeneric #-}
module Two where
import GHC.Generics (Generic)
data Data = Data {
scName :: String
} deriving Generic当试图构建包含这两个文件的项目时,链接阶段的ghc会抛出如下所示的几个错误:(它们仅在(.data+0XXXX)部分中有所不同)。
dist/dist-sandbox-190abc84/build/libHSserver-0.1.a(Server.o):(.data+0x1b8): undefined reference to `serverzm0zi1_Two_zdfGenericData_closure'最后的信息是:
collect2: error: ld returned 1 exit status我在ghc 7.8.3和7.6.3中尝试了这一点,它们的行为都很相似。
如果把所有的代码都放在一个模块中,我就可以让这个功能工作。
有人能解释一下这里发生了什么吗?
发布于 2014-11-28 19:47:33
我正在使用GHC 7.8.3 (来自Haskell平台)。下面是一个带有沙箱中使用的特定版本的cabal.config文件。
constraints: aeson ==0.8.0.2,
array ==0.5.0.0,
attoparsec ==0.12.1.2,
base ==4.7.0.1,
bytestring ==0.10.4.0,
containers ==0.5.5.1,
deepseq ==1.3.0.2,
dlist ==0.7.1,
generic ==0.1.0.0,
generic-aeson ==0.2.0.2,
generic-deriving ==1.7.0,
ghc-prim ==0.3.1.0,
hashable ==1.2.2.0,
integer-gmp ==0.5.1.0,
json-schema ==0.7.1.1,
mtl ==2.1.3.1,
old-locale ==1.0.0.6,
pretty ==1.1.1.1,
primitive ==0.5.2.1,
rts ==1.0,
scientific ==0.3.3.2,
syb ==0.4.1,
tagged ==0.7.3,
template-haskell ==2.9.0.0,
text ==1.1.1.3,
time ==1.4.2,
transformers ==0.3.0.0,
unordered-containers ==0.2.5.1,
vector ==0.10.9.1https://stackoverflow.com/questions/27192759
复制相似问题