2012-09-22 14 views
10

जब मैं हास्केल प्रोजेक्ट में कैबल के विभिन्न MIN_VERSION_ मैक्रोज़ का उपयोग करता हूं, तो मैं कैसे सुनिश्चित कर सकता हूं कि जब मैं कैबल का उपयोग नहीं कर रहा हूं, तो वे सभी सही ढंग से परिभाषित किए गए हैं, उदा। जीएचसीआई में परीक्षण करते समय?मैं कैबल के MIN_VERSION_ और ghci के साथ अन्य मैक्रोज़ का उपयोग कैसे करूं?

उत्तर

21

आजकल, cabalcabal repl उपसमंद का समर्थन करता है, जो आपके लिए सभी सेटअप करता है, इसलिए कम से कम ghci के लिए निम्नलिखित अनावश्यक है। फिर भी:

cabal build कमांड फ़ाइल dist/build/autogen/cabal_macros.h उत्पन्न करता है, जिसमें आपकी सभी परिभाषाएं शामिल हैं। उस फ़ाइल को एक ghc invocation में शामिल करने के लिए, आपको झंडे -optP-include -optPdist/build/autogen/cabal_macros.h की आवश्यकता होगी।

सुविधा के लिए आप परियोजना निर्देशिका में .ghci फ़ाइल में निम्न जगह कर सकते हैं:

:set -optP-include -optPdist/build/autogen/cabal_macros.h 

ताकि आप हर बार जब आप GHCi उपयोग करना चाहते हैं विकल्पों की टाइप करने के लिए नहीं है।

सावधान रहें, हालांकि: मैक्रोज़ को कॉन्फ़िगरेशन के अनुसार परिभाषित किया जाएगा जब आप पिछली बार cabal build चलाते थे, और जब आप नए पैकेज स्थापित करते हैं या एक अलग जीएचसी संस्करण का उपयोग करते हैं तो अपडेट नहीं किया जाएगा: इसके लिए आपको फिर से कॉन्फ़िगर करना होगा और पैकेज का पुनर्निर्माण करें।

(इस ज्ञान के लिए पुस्तकालयों की सूची पर साइमन हेंगल के लिए धन्यवाद: http://www.haskell.org/pipermail/libraries/2012-September/018491.html)।

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

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