2016-05-08 4 views
5

मैं डेटा संरचना बनाने की कोशिश कर रहा हूं जिसे हास्केल में उजागर किया जाएगा, लेकिन सी ++ में लागू किया जाएगा। अब तक मैंने इसे .cpp फ़ाइल में कार्यान्वित किया है, मुझे extern "C" के रूप में आवश्यक सभी कार्यों की घोषणा की है और .cabal फ़ाइल में c-sources फ़ील्ड में स्रोत फ़ाइल को जोड़ा गया है। जब मैं प्रोजेक्ट का निर्माण करता हूं (इस मामले में stack build के साथ) ऐसा लगता है कि यह ठीक है।हास्केल प्रोजेक्ट में सी ++ स्रोतों सहित

मुझे पता है कि यह कुछ सी ++ फ़ाइल में कर रहा है क्योंकि त्रुटियों में यह संकलित नहीं होता है।

मैंने अभी तक प्रोजेक्ट को चलाने का प्रयास नहीं किया है क्योंकि यह एक लाइब्रेरी है और अब तक इसमें "रननेबल" कुछ भी नहीं है, लेकिन प्रतिकृति काम नहीं कर रही है।

जब मैं इसे चलाने की कोशिश करता हूं (stack repl इस मामले में) मुझे कुछ उलझन वाले नाम के साथ एक लापता प्रतीक त्रुटि मिलती है जो मेरी फ़ाइल में किसी नाम का संदर्भ हो सकता है या नहीं।

unknown symbol `_ZdlPv' 
linking extra libraries/objects failed 

मैं इस समस्या को कैसे ठीक कर सकता हूं? इससे पहले कि मैंने स्रोत को गतिशील लाइब्रेरी में मैन्युअल रूप से संकलित करके तय किया है और फिर मेरी प्रोजेक्ट में उस लाइब्रेरी का उपयोग करके तय किया गया है। मैं ऐसा नहीं करना चाहता क्योंकि यह मुझे एक प्लेटफॉर्म से जोड़ता है और चूंकि इसका कोई मतलब नहीं है कि जीएचसी के पहले से मौजूद टूल का उपयोग करके प्रोजेक्ट के साथ एक सरल सी ++ संकलित नहीं किया जा सका। मैं इसे हैकेज पर रखने में सक्षम होना चाहता हूं।

क्या मुझे कुछ याद आ रही है? यदि नहीं, तो क्या यह एक बग है और क्या इसे ठीक करने की योजना है?

+0

कृपया सही त्रुटि संदेश और एक [mcve] जोड़ें। – Zeta

+2

यहां एक कैबल पैकेज के लिए एक उदाहरण है जिसमें सी ++ स्रोत शामिल हैं https://github.com/jbransen/minisat-bundle/blob/master/minisat.cabal – d8d0d65b3f7cf42

+0

@Zeta यह एक प्रश्न का प्रकार नहीं है। –

उत्तर

2

ठीक है, मैंने अभी इसे "ठीक" करने में कामयाब रहा है।

मैंने अपनी कैबल फ़ाइल में extra-libraries: stdc++-6, gcc_s_seh-1 जोड़ा और अब यह काम करता है। कोई विचार नहीं है कि यह मंच स्वतंत्र है लेकिन जब मैं इसे ढेर के माध्यम से स्थापित करता हूं तो उन पुस्तकालयों को जीएचसी के साथ भेज दिया जाता है।

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