2017-03-01 32 views
0

在我的Haskell的項目,我有以下目錄結構(一些條目失蹤,但這個問題不相關)哈斯克爾陰謀迷惑有關文件和模塊名

- quanthas 
    - quanthas.cabal 
    - src/ 
     - QuantHas/ 
     - Settings.hs 

我Settings.hs文件中包含該模塊頭

module QuantHas.Settings(module QuantHas.Settings) where 

我的陰謀文件看起來像這樣

Name:    QuantHas 
Version:   0.0 
Description: 
    QuantHas project is an attempt to port QuantLib to Haskell keeping the functional flavor of Haskell. 
License:   BSD3 
License-file:  LICENSE 
Build-Type:   Simple 
Cabal-Version:  >=1.10 

Library 
    Build-Depends: base >= 3 && < 5, array >= 0.2 
    Exposed-modules: QuantHas.Time.Frequency 
       QuantHas.Time.TimeUnit 
       QuantHas.Time.Period 
       QuantHas.Time.Date 
       QuantHas.Time.DayCounter 
       QuantHas.Time.BusinessDayConvention 
       QuantHas.Time.Calendar 
       QuantHas.Time.Calendars.UnitedKingdom 
       QuantHas.Time.Schedule 
       QuantHas.Settings 
       QuantHas.Require 
    default-language: Haskell2010     
    hs-source-dirs: src 
    -- ghc-options:  -Wall 

test-suite QuantHas-tests 
    type: exitcode-stdio-1.0 
    hs-source-dirs: testsuite 
    main-is: Tests.hs 
    default-language: Haskell2010 

當我執行

cabal install --enable-tests 

我得到這個消息

src/Quanthas/Settings.hs:17:8: error: 
    File name does not match module name: 
    Saw: ‘QuantHas.Settings’ 
    Expected: ‘Quanthas.Settings’ 

這似乎是錯誤的。但是,如果我們做什麼cabal期望。所以Settings.hs模塊頭現在是

module Quanthas.Settings(module Quanthas.Settings) where 

卡瓦爾說,現在

src/QuantHas/Settings.hs:17:8: error: 
    File name does not match module name: 
    Saw: ‘Quanthas.Settings’ 
    Expected: ‘QuantHas.Settings’ 

而且它在這個ppint,我放棄了,轉而左右。任何人都可以幫助我理解發生了什麼?

版本信息: 平臺:的MacBook Pro運行的MacOS 10.12.3 哈斯克爾:8.0.1 驚天動地:1.24.0.0

謝謝!

+0

那麼你確定文件系統中的'QuantHas'目錄是用大寫'H'命名的嗎?如果是這樣,你做了一些像小寫字母開頭,然後重命名它?想知道如果它可以是一些緩存的東西。 –

+0

是的,它在目錄名稱中總是有'H'。 –

+0

更改後試過'cabal configure'嗎? – arrowd

回答

1

問題是在其他模塊中的某個導入語句中存在拼寫錯誤。由於您處於不區分大小寫的文件系統(OS X),因此GHC能夠找到模塊內容,但在檢查模塊標頭時發現它與導入語句不匹配,並且出錯。