使用c2hs找不到.chs模块

时间:2015-06-24 21:48:17

标签: haskell cabal cabal-install c2hs

我正在尝试c2hs,并希望用Cabal编译一个共享库的小例子来开始。

我有cabal文件test.cabal的以下相关部分:

executable libtest.so
  hs-source-dirs:      src
  main-is:             Dummy.hs
  other-extensions:    ForeignFunctionInterface
  build-depends:       base
  default-language:    Haskell2010
  ghc-options:         -no-hs-main -threaded
  build-tools:         c2hs

然后是来源。 src/Dummy.hs

import Test

main :: IO ()
main = return

在档案src/Test.chs

{-# LANGUAGE ForeignFunctionInterface #-}
import Foreign
import Foreign.C

module Android where

然后当我尝试编译(cabal configure && cabal build -v)时,我收到以下错误消息:

Component build order: executable 'libtest.so'
creating dist/build
creating dist/build/autogen
Building test-0.1.0.0...
Preprocessing executable 'libtest.so' for test-0.1.0.0...
Building executable libtest.so...
creating dist/build/libtest.so
creating dist/build/libtest.so/libtest.so-tmp
/opt/ghc/bin/ghc --make -no-link -fbuilding-cabal-package -O -j8 -static
-outputdir dist/build/libtest.so/libtest.so-tmp -odir dist/build
/libtest.so/libtest.so-tmp -hidir dist/build/libtest.so/libtest.so-tmp-stubdir
dist/build/libtest.so/libtest.so-tmp -i -idist/build/libtest.so/libtest.so-tmp
-isrc -idist/build/autogen -Idist/build/autogen
-Idist/build/libtest.so/libtest.so-tmp
-optP-include -optPdist/build/autogen/cabal_macros.h -hide-all-packages
-package-db dist/package.conf.inplace -package-id
base-4.7.0.1-1a55ebc8256b39ccbff004d48b3eb834 -XHaskell2010
src/Dummy.hs -no-hs-main -threaded

src/Dummy.hs:1:8:
    Could not find module ‘Test’
Use -v to see a list of the files searched for.

拜托,您能告诉我错误的原因是什么吗?我错过了什么?

1 个答案:

答案 0 :(得分:2)

您需要将Test添加到other-modules字段。