2009-06-01 3 views

उत्तर

13

मैं विशेष रूप से SWIG का शौकीन नहीं हूं और इंटरफेसिंग कोड स्वयं लिखना पसंद करता हूं। पर्ल सी या सी ++ में इंटरफेसिंग के लिए 'एक्सएस' नामक छद्म भाषा के साथ आता है। दुर्भाग्यवश, इसका उपयोग करने के लिए, आपको कम से कम सी, पर्ल पता होना चाहिए, और फिर दुभाषिया एपीआई के बारे में कुछ सीखना होगा। यदि आप पहले से ही पर्ल और सी अच्छी तरह से जानते हैं, तो यह ऐसा एक बड़ा कदम नहीं है। XS पर निम्नलिखित मुख्य दस्तावेजों पर एक नज़र डालें:

  1. perlxstut (XS ट्यूटोरियल)
  2. perlxs (XS संदर्भ)
  3. perlapi (दुभाषिया एपीआई)

इसके अतिरिक्त, ट्यूटोरियल के बहुत सारे है और इंटरनेट पर कैसे करें।

अब, एक्सएस का उपयोग कर सी ++ में इंटरफेसिंग करने के लिए कुछ अतिरिक्त कदमों की आवश्यकता है। यह पहली बार काम करने के लिए थोड़ा निराशाजनक हो सकता है, लेकिन इसे प्राप्त करने के बाद अच्छी तरह से जगह में गिर जाता है। इस संबंध में, मूल दस्तावेज सबसे अच्छा है। पर अभी भी सब कुछ खत्म नहीं हुआ। पर्ल के लिए WxWidgets बाइंडिंग के निर्माता मैटिया बार्बोन ने एक महान टूल "एक्सएस ++" लिखा है जो इसे लगभग मृत सरल बनाता है (या एक्सएस के रूप में सरल)। यह डब्ल्यूएक्स में शामिल है, लेकिन हम इसे अपने वितरण में विभाजित करने पर काम कर रहे हैं। यह काम प्रगति में है। आप Mattia's XS++ code और गीथब पर modified version of mine पा सकते हैं।

CPAN के लिए एक स्टैंडअलोन XS ++ की रिहाई वर्जित है, मैं अन्य संसाधनों से C++ के लिए XS लिखने के लिए सीखने का सुझाव देते हैं:

  • काफी एक लंबे समय पहले, जॉन Keizer एक उत्कृष्ट tutorial on XS and C++ लिखा था। इसमें उपयोगी टूल और दस्तावेज़ीकरण के लिए और पॉइंटर्स भी शामिल हैं।
  • मैंने उस ट्यूटोरियल से XS & सी ++ और सीपीएएन पर मिले कुछ उदाहरणों को सीखा। मुझे याद नहीं आया कि मैंने तब क्या देखा था। लेकिन अब मैं अपने काम को इंगित कर सकता हूं (अच्छा या बुरा, मुझे नहीं पता) उदाहरण: Math::SymbolicX::FastEvaluator
  • इसी प्रकार, योजनाबद्ध एक्सएस ++ वितरण में C++ और पर्ल इंटरफ़ेस के लिए XS ++ का उपयोग करने के लिए complete (albeit pointless) example शामिल है। चूंकि XS ++ को सादा एक्सएस में अनुवादित किया गया है, इसलिए आप इसे पर उदाहरण उत्पन्न कर सकते हैं।

पीएस: इनलाइन :: सीपीपी मॉड्यूल भी है। यदि यह काम करता है, तो यह शायद सबसे आसान समाधान है। मुझे संदेह है कि यह टेम्पलेट्स को संभाल सकता है, यद्यपि।

+0

थोड़ा विस्तार का उल्लेख करना भूल गए: जॉन केइज़र के ट्यूटोरियल में डीन रोहेरिच की सीपीएएन निर्देशिका का एक लिंक है। लिंक एक बाध्य सीपीएएन दर्पण के लिए है। इसके बजाय इसे आजमाएं: http://search.cpan.org/CPAN/authors/id/DMR/ – tsee

+0

एक्सएस ++ को ExtUtils :: XSpp से CPAN के रूप में जारी किया गया है: http://search.cpan.org/dist/ExtUtils-XSpp यह अभी भी शुरुआती दिनों में है, लेकिन मैंने सफलतापूर्वक Wx.pm बनाया है। – tsee

10

चेक http://www.swig.org:

"बड़ा घूँट एक सॉफ्टवेयर विकास उपकरण उच्च स्तरीय प्रोग्रामिंग भाषाओं की एक किस्म के साथ C++ और सी में लिखे गए प्रोग्राम्स को जोड़ता है बड़ा घूँट भाषाओं के विभिन्न प्रकार के साथ प्रयोग किया जाता है। सामान्य स्क्रिप्टिंग भाषाओं सहित जैसे पर्ल, PHP, पायथन, टीसीएल और रुबी। "

7

मैं आम तौर पर टीएसई की तरह एक्सएस चुनता हूं, लेकिन इस मामले में Inline::C (या Inline::CPP भी है)।मैं SWiG नापसंद करता हूं और इसके चारों ओर बनाए गए संकुल से बचने लगता हूं।

+2

ओपी शायद इनलाइन :: सीपीपी चाहता है। – runrig

+0

निश्चित रूप से सच है। मैं व्यक्तिगत रूप से उस बारे में भी अवगत नहीं था। – jettero

+1

+1 'इनलाइन' मॉड्यूल वास्तव में पर्ल में विदेशी कोड को एकीकृत करना आसान बनाता है। – mob

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