2011-11-02 12 views
7

मुझे ghc के साथ साझा लाइब्रेरी बनाने के साथ कोई समस्या है और मुझे लगता है कि मुझे अपने हैंकेल पैकेजों को --enable-shared के साथ पुनर्निर्माण करने की आवश्यकता है, क्या मेरे सभी को पुनर्निर्माण करने का एक आसान तरीका है फ्लैग के साथ कैबल के साथ पैकेज - सक्षम-साझा?कैबल सभी सक्षम-साझा ध्वज के साथ पुनर्निर्माण

उत्तर

7

यदि आपके पास ~/.cabal/world है, cabal install --reinstall --enable-shared world काम कर सकता है, लेकिन पहले --dry-run ध्वज के साथ परीक्षण करें। हालांकि, केवल कैबल-स्थापित पैकेजों का ख्याल रखेगा। यदि आपके पास अपने डिस्ट्रो के पैकेज मैनेजर के साथ संकुल स्थापित हैं, तो डिस्ट्रो उन लोगों के लिए साझा संस्करण भी प्रदान कर सकता है (अन्यथा, आपको इसे मैन्युअल रूप से करना होगा)। साथ ही, यह ~/.cabal/config में shared: True सेट करने में मददगार होगा।

+0

त्वरित उत्तर के लिए धन्यवाद! ऐसा लगता है जैसे दुनिया आधार छोड़ रही है, क्या वह कैबल्स जिम्मेदारी या ghc है? –

+0

और मुझे मिल रहा है: "XMonad.hs: 47: 8: मॉड्यूल 'Control.Monad.Reader' नहीं मिला: शायद आपने पैकेज 'mtl-2.0.1.0 के लिए" dyn "लाइब्रेरी इंस्टॉल नहीं की है ' के लिए खोज की गई फ़ाइलों की सूची देखने के लिए -v का उपयोग करें। " –

+2

आप आधार को पुनर्स्थापित नहीं कर सकते हैं। और अन्य बूट पैकेजों को पुनर्स्थापित करने से भारी ब्रेकेज भी हो जाएगा। _Do भी इसका प्रयास न करें ._ हालांकि, बूट पैकेज के लिए साझा लाइब्रेरी उपलब्ध होनी चाहिए, पहले, वे ghc के डाउनलोड पेज से बाइनरी में शामिल हैं और यदि आप स्रोत से बनाते हैं तो स्वचालित रूप से बनाए जाते हैं। यदि आपको एक डिस्ट्रो पैकेज से अपना ghc मिल गया है, तो डिस्ट्रो को भी साझा पैकेज प्रदान करना चाहिए (कम से कम बूट libs के लिए)। –

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