2015-10-22 11 views
8

मैं कुछ हस्सेल में शुरुआत करने वाला हूं और मैं stack को एप्लिकेशन बनाने के लिए कोशिश कर रहा हूं।जीएचसी लिंकर त्रुटि (ढेर)

Linking .stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/sim-exe/sim-exe ... 
[...]/.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/libHSsim-0.1.0.0-EmdGqYS9bXF9VefempSPEG.a(Lib.o):(.text+0x98f5): undefined reference to `simzuEmdGqYS9bXF9VefempSPEG_Linter_lint_info' 
[...]/.stack-work/dist/x86_64-linux/Cabal-1.22.4.0/build/libHSsim-0.1.0.0-EmdGqYS9bXF9VefempSPEG.a(Lib.o):(.data+0x5f0): undefined reference to `simzuEmdGqYS9bXF9VefempSPEG_Linter_lint_closure' 
collect2: error: ld returned 1 exit status 

लेबल को देखते हुए मुझसे कहता है कि यह इस समारोह में एक बंद करने से संबंधित है:

हालांकि, stack build मुझे लिंकर त्रुटियों जब निष्पादित देता

lint :: String -> [LintError] 
lint source = let 
    handleParseError :: ParseError -> [LintError] 
    handleParseError e = [LintError (fromSourcePos $ errorPos e) $ format e] 
    in 
    case parseSim source of 
     (Left error) -> handleParseError error 
     (Right prog) -> lintProgram prog 

लेकिन वहाँ में एक बंद वास्तव में नहीं है क्या आप वहां मौजूद हैं? अगर मैं

lint _ = [] 

साथ lint के कार्यान्वयन की जगह यह ठीक संकलित करता है।

मैं stack ghci निष्पादित कर सकता हूं और पूर्ण lint कार्यान्वयन को ठीक से ठीक कर सकता हूं। यह लिंक करने में विफल क्यों होता है?

+6

शायद मॉड्यूल कोबेल फ़ाइल में शामिल नहीं किया गया है? – Yuras

+1

@ युरास हाँ, वह था ... मैंने 'खुला-मॉड्यूल' के तहत मॉड्यूल जोड़ा और यह अब काम करता है - मुझे बस नहीं पता था कि मुझे ऐसा करना है। धन्यवाद – DeX3

+2

@ डीएक्स 3 क्या आप इसे उत्तर के रूप में लिख सकते हैं और इसे स्वीकार कर सकते हैं? –

उत्तर

7

जैसा कि यूरा सही ढंग से इंगित करता है, कैबल फ़ाइल में exposed-modules के तहत मॉड्यूल जोड़ना समस्या को हल करता है।

संबंधित मुद्दे