0
命令cabal install
正常工作,cabal configure --enable-tests
也正常工作。然而,當我運行cabal build -j
它不會編譯:集成HUnit與Cabal的問題
Building MoodleLatex-0.1.0.0...
Preprocessing executable 'moddlelat' for MoodleLatex-0.1.0.0...
Preprocessing test suite 'Moodle-Tests' for MoodleLatex-0.1.0.0...
In-place registering Moodle-Tests-0.1.0.0...
[1 of 1] Compiling Main (dist/build/Moodle-TestsStub/Moodle-TestsStub-tmp/Moodle-TestsStub.hs, dist/build/Moodle-TestsStub/Moodle-TestsStub-tmp/Main.o)
Linking dist/build/Moodle-TestsStub/Moodle-TestsStub ...
/home/miki/exp/moodle/dist/build/libMoodle-Tests.a(Moodle.o):(.text+0x26): undefined reference to `MoodlzuHFs0eta1wVtKnH9dbfcoDT_MoodleziTypes_zdfShowMoodleVal_closure'
/home/miki/exp/moodle/dist/build/libMoodle-Tests.a(Moodle.o):(.text+0xd9): undefined reference to `MoodlzuHFs0eta1wVtKnH9dbfcoDT_MoodleziTypes_zdfShowMoodleVal_closure'
/home/miki/exp/moodle/dist/build/libMoodle-Tests.a(Moodle.o):(.text+0xeba): undefined reference to `MoodlzuHFs0eta1wVtKnH9dbfcoDT_MoodleziParser_parseExpr2_closure'
[..snip..]
/home/miki/exp/moodle/dist/build/libMoodle-Tests.a(Moodle.o):(.data+0x570): undefined reference to `MoodlzuHFs0eta1wVtKnH9dbfcoDT_MoodleziParser_parseExpr2_closure'
/home/miki/exp/moodle/dist/build/libMoodle-Tests.a(Moodle.o):(.data+0x578): undefined reference to `MoodlzuHFs0eta1wVtKnH9dbfcoDT_MoodleziParser_parseExpr9_closure'
/home/miki/exp/moodle/dist/build/libMoodle-Tests.a(Moodle.o):(.data+0x580): undefined reference to `MoodlzuHFs0eta1wVtKnH9dbfcoDT_MoodleziParser_zdwa1_closure'
collect2: error: ld returned 1 exit status
這是源目錄的結構:
src
├── Main.hs
├── Moodle
│ ├── Parser.hs
│ ├── Translator.hs
│ └── Types.hs
└── Test
└── Moodle.hs
這是我的陰謀集團的文件(相關線路只):
name: MoodleLatex
version: 0.1.0.0
category: Text
build-type: Simple
extra-source-files: README.md
cabal-version: >=1.10
executable moddlelat
main-is: Main.hs
-- other-modules:
other-extensions: OverloadedStrings
build-depends: base >=4.8 && <4.9
, scientific >=0.3 && <0.4
, text >=1.2 && <1.3
, attoparsec >=0.13 && <0.14
hs-source-dirs: src
default-language: Haskell2010
Test-Suite Moodle-Tests
type: detailed-0.9
test-module: Test.Moodle
build-depends: base >=4.8 && <4.9
, scientific >=0.3 && <0.4
, text >=1.2 && <1.3
, attoparsec >=0.13 && <0.14
, Cabal
, HUnit
, cabal-test-hunit
hs-source-dirs: src
default-language: Haskell2010
我按照cabal-test-hunit README中的步驟操作。我也想知道,是否有必要兩次聲明依賴關係?!這不是很乾。
編輯:它似乎無法找到我的模塊。但是,如果我添加MoodleLatex
到build-depends
我碰到另一個錯誤:
Building MoodleLatex-0.1.0.0...
Preprocessing executable 'moddlelat' for MoodleLatex-0.1.0.0...
Preprocessing test suite 'Moodle-Tests' for MoodleLatex-0.1.0.0...
<command line>: cannot satisfy -package-id MoodleLatex-0.1.0.0-inplace
你說得對,這是讓我絆倒了! – rubik