2014-10-17 16 views
5

मैं एक परियोजना पर काम कर रहा हूं और मैं प्रबंधन के लिए कैबल का उपयोग कर रहा हूं। मैंने स्रोत फ़ाइलों, मॉड्यूल, सभी सामान की निर्देशिका निर्दिष्ट की है। मेरी सभी फाइलों के समान मॉड्यूल के समान नाम हैं, केस संरक्षित है।जीएचसीआई मेरे प्रोग्राम के मॉड्यूल नहीं ढूंढ सकता

मैं कर सकते हैं:

$ cabal configure 
$ cabal build 

समस्याओं के बिना।

हालांकि, कल्पना करें कि मेरे पास फ़ाइल Module.hs में एक मॉड्यूल है, और उसी निर्देशिका में File.hs फ़ाइल करें। अब, जब मैं परीक्षण के लिए Emacs से File.hs लोड करने के लिए कोशिश कर रहा हूँ, मैं निम्नलिखित हो: File.hs की

____Could not find module ‘Module’ 
    It is a member of the hidden package ‘ghc-7.8.3’. 
    Use -v to see a list of the files searched for. 
Failed, modules loaded: none. 

पूर्ण सामग्री:

module File where 
import Module 

यह कैसे अपने प्रोजेक्ट की फ़ाइलों को प्राप्त करने के लिए?

उत्तर

4

आपको अपनी स्रोत फ़ाइलों को ढूंढने के लिए जीएचसीआई को बताना होगा। उदाहरण के लिए, यदि आपके परियोजना निर्देशिका ./foo है और आप ./foo/src में अपने स्रोत फ़ाइलें आप (अपनी परियोजना निर्देशिका से) कहने के लिए की जरूरत है: GHCi में कमांड प्रॉम्प्ट पर

:set -isrc 

। इसके बाद आपको C-c C-l से लोड की गई आपकी सोर्स फ़ाइल में निजी सदस्यों तक पहुंच होगी।

आपको यह सुनिश्चित करने की भी आवश्यकता है कि आपके पास cabal install आपके पैकेज को संपादित नहीं किया गया है, अन्यथा पैकेज लोड हो जाएगा, न कि प्रोजेक्ट स्रोत फाइलें।

+0

बिल्कुल सही! एक जादू की तरह काम करता है! – Mark

5

तुम इतनी तरह कबाल के माध्यम से आरईपीएल शुरू कर सकते हैं:

# कबाल repl

यह ghci चल के रूप में ही है, लेकिन अपने स्थानीय या सैंडबॉक्स पैकेज स्थापित कबाल द्वारा स्थापित किसी भी अतिरिक्त निर्भरता को ध्यान में रखना होगा भंडार।

+1

ठीक है, यह केवल कुछ भी लोड करता है, विशिष्ट फ़ाइल नहीं। मॉड्यूल में गैर-सार्वजनिक कार्यों तक पहुंच नहीं है जिन पर मैं काम कर रहा हूं। मुझे 'सी-सी सी-एल' करना है और वर्तमान मॉड्यूल को जीएचसीआई में लोड करना पसंद है, यह काफी सुविधाजनक है। हो सकता है कि इस वर्कफ़्लो को सहेजने का कोई तरीका है ... वैसे भी आपके उत्तर के लिए धन्यवाद। – Mark

+1

प्रतिलिपि शुरू करने के बाद, आप सीधे 'लोड' के साथ एक व्यक्तिगत स्रोत फ़ाइल आयात कर सकते हैं। यानी 'लोड करें MyFile.hs' यह आपको आंतरिक/निजी सदस्यों के लिए सीधे पहुंच प्रदान करेगा –

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