2010-01-25 6 views
5

क्या कुछ है .dll या .so, लेकिन क्रॉस-प्लेटफ़ॉर्म?क्या कुछ .dll या .so, लेकिन क्रॉस-प्लेटफ़ॉर्म जैसा है?

+1

मेरा मतलब बाइनरी संगतता – SomeUser

+0

नहीं है, अच्छी तरह से डीएलएल और एसओ (बाइनरी संगतता) की कठोर प्रकृति के कारण उन्हें शक्तिशाली अर्थशास्त्र और बड़ी कमजोरियां होती हैं। आप वास्तव में क्या पूछने की कोशिश कर रहे हैं? –

+0

मेरा मतलब: programm और हर मंच – SomeUser

उत्तर

2

यह स्पष्ट नहीं है कि आप क्या पूछ रहे हैं, लेकिन यदि आप पूछ रहे हैं "मैं क्रॉस-प्लेटफ़ॉर्म तरीके से गतिशील रूप से लोड करने योग्य सी/सी ++ पुस्तकालय कैसे बना सकता हूं," तो उत्तर GNU Libtool है। इसका निर्माण और उपभोग करने के लिए समर्थन है, साथ ही रनटाइम सपोर्ट फ़ंक्शन

4

नहीं C/C++ के लिए AFAIK, जावा .jar फ़ाइलें है कि हालांकि एक तरह से अनुरूप हैं है।

8

जावा .class फ़ाइलें और .jar अभिलेखागार इस आवश्यकता को पूरा करेगा, के रूप में मोनो के अंतर्गत चल विधानसभाओं नेट होगा।

+1

के लिए हर dll संकलक वे वास्तव में कारणों की एक बहुतायत के लिए आवश्यकता को पूरा नहीं करते हैं - वह पूछ नहीं है अगर वहाँ भाषाओं जो एक संकलन इकाई है कि वास्तुकला और विक्रेता indepement है:/आपको किसी भी अस्वीकरण के बिना ऐसी बोल्ड कुलताएं नहीं बतानी चाहिए। –

+0

सवाल कहता है "क्या ऐसा कुछ है ..."। मुझे लगता है कि उपरोक्त 'आवश्यकता' काफी अच्छी तरह से फिट बैठता है। मैं उपर्युक्त भाषाओं के बारे में बात नहीं कर रहा हूं। मैं प्लेटफार्मों के बारे में बात कर रहा हूं (जेवीएम या नेट) –

6

एक सार्वभौमिक निष्पादन योग्य प्रारूप? सं।

आभासी मशीनों (जावा) या आईएल (नेट) के अस्तित्व के लिए यही कारण है - इसलिए एक ही स्रोत कोड को सार्वभौमिक मध्यवर्ती भाषा में संकलित किया जा सकता है, जिसे बाद में ढांचे द्वारा निष्पादित किया जा सकता है प्रोग्रामर के बिना सिस्टम के बीच अंतर जानने के लिए अंतर्निहित सिस्टम बाइटकोड।

अभ्यास में, वी एम लगातार सभी प्लेटफार्मों पर लागू किया जाना है।

1

जैसा कि अन्य ने उल्लेख किया है, वास्तव में नहीं। शायद LLVM एक दिन पुल को पुल करेगा जिससे हम एलएलवीएम समकक्षों को देख सकेंगे क्योंकि हम स्थिर/गतिशील ऑब्जेक्ट लाइब्रेरी करते हैं।

कारण स्थिर वस्तु पुस्तकालयों आम तौर पर पोर्टेबल नहीं हैं में से कुछ के लिए this reply पर एक नजर डालें। मैं आम तौर पर कहता हूं क्योंकि कभी-कभी - यदि ओएस विक्रेता पर्याप्त देखभाल करते हैं - यह संभव है - जैसे फ्रीब्स डीनक्स बाइनरी निष्पादित करना, या Win32 रनटाइम के बड़े हिस्से को लागू करने वाली वाइन।

0

बाइनरी वस्तु फ़ाइलों लगभग हमेशा एक विशेष मंच के लिए बाध्य कर रहे हैं। जैसा कि अन्य ने पहले ही कहा है, ऑब्जेक्ट फ़ाइल स्वरूप जो प्लेटफॉर्म आजादी के सबसे नज़दीक आते हैं, वे .NET/मोनो असेंबली और जावा बाइटकोड भी हो सकते हैं।

यह कहा गया है कि, यदि आप वास्तविक प्लेटफ़ॉर्म आजादी चाहते हैं, तो आप स्रोत कोड (यदि यह एक विकल्प है) के साथ सबसे अच्छा हो सकता है। मुझे पता है कि यह आप नहीं पूछते हैं, लेकिन इस बात पर विचार करें कि आप इन मशीनों पर सी ++ प्रोग्राम को संकलित करने में सक्षम होंगे (उदाहरण के लिए जीएनयू कंपाइलर कलेक्शन के साथ), यदि आपका सी ++ कोड स्वयं मंच-अज्ञेयवादी है।