AFAIK, आप एक कैबल फ़ाइल में एक से अधिक लाइब्रेरी नहीं डाल सकते हैं। Name
फ़ील्ड (कैबल फ़ाइल के शीर्ष स्तर पर) में निर्दिष्ट नाम लाइब्रेरी के नाम के रूप में उपयोग किया जाता है, इसलिए अतिरिक्त पुस्तकालयों के नाम निर्दिष्ट करने के लिए एक तंत्र प्रतीत नहीं होता है।
प्रैक्टिस में, मुझे यह समस्या नहीं मिली है। मैं प्रत्येक लाइब्रेरी को अपनी खुद की कैबल फ़ाइल के साथ एक अलग निर्देशिका में विकसित करता हूं। एक बार जब आप विकसित की गई लाइब्रेरी पर cabal install
चलाते हैं, तो इसे आपके निष्पादन योग्य (Build-Depends
अनुभाग में) के लिए कैबल फ़ाइल में संदर्भित किया जा सकता है, बस हैकेज पर एक पैकेज के समान ही।
तो, उदाहरण के लिए, आपको लगता है कि इस तरह दिखना कबाल फाइलों के साथ दो पुस्तकालयों अगर:
Name: my-library-1
. . .
और
Name: my-library-2
. . .
फिर अपने निष्पादन उन्हें इस तरह संदर्भित कर सकते हैं के लिए कबाल फ़ाइल:
Name: my-program
. . .
Executable run-program
Main-Is: Main.hs
Build-Depends: my-library1,
my-library2,
. . .
आपको अपने पुस्तकालयों के विशिष्ट संस्करणों की भी आवश्यकता हो सकती है। उदाहरण के लिए:
Build-Depends: my-library1==1.2.*,
my-library2>=1.3
धन्यवाद, मुझे पता है कि मैं इसे इस तरह उपयोग कर सकता हूं, लेकिन मैं एक साथ कई पुस्तकालयों को विकसित करने की थर्म प्रक्रिया को सरल बनाना चाहता था - और उन्हें हर समय बिल्डिंग और पुनर्स्थापित करना, लेकिन ऐसा लगता है कि 'कैबल-देव' मेरी समस्या हल करती है । –
आह, मुझे एहसास नहीं हुआ कि आप उस तरह की चीज 'कैबल-देव' के साथ कर सकते हैं। आप शायद यह वर्णन करना चाहें कि आपने यह कैसे किया है, इसे यहां एक उत्तर के रूप में पोस्ट करें, और फिर इसे स्वीकार करें। दूसरों को समाधान में रुचि हो सकती है। – mhwombat
@mhwombad - नीचे देखें :) –