2012-08-29 12 views
6

एंड्रॉइड को डेल्फी लाइब्रेरी पोर्ट करने का प्रयास कर रहा है। फ्री पास्कल में एंड्रॉइड/एआरएम समर्थन है - विंडोज के लिए एक प्रीबिल्ट कंपाइलर उपलब्ध है। हालांकि, एंड्रॉइड एनडीके अब एमआईपीएस और एक्स 86 का भी समर्थन करता है। एफपीसी में उन लोगों के लिए समर्थन की स्थिति क्या है? अभी के लिए, मेरी परियोजना कम या ज्यादा CPU अज्ञेयवादी है - देशी बिट्स सभी चार समर्थित आर्किटेक्चर के लिए बनाए गए हैं। उस पर जाने नहीं देना चाहते हैं।एंड्रॉइड के लिए मुफ्त पास्कल एमआईपीएस

मैं पास्कल में एंड्रॉइड विकास के पूर्ण चक्र के बाद नहीं हूं - केवल एक एल्गोरिदम लाइब्रेरी है जो I/O नहीं करता है। मैंने इसे पी 2 सी के साथ सी में अनुवाद करने की कोशिश की, लेकिन अनुवादक सूत्रों पर चोक करता है।

क्या मुझे बस लिनक्स के साथ प्रासंगिक सीपीयू के लिए क्रॉस-कंपाइलर का प्रयास करना और बनाना चाहिए, और फिर एनडीके पुस्तकालयों के खिलाफ लिंक करना चाहिए?

संपादित करें: मैंने एंड्रॉइड शाखा के स्रोतों से इंटेल/लिनक्स के लिए क्रॉस-कंपाइलर बनाया है। यह काम करता है, सिवाय इसके कि आपको ppcross386 संकलित करने के लिए fpc नहीं है। ऐसा लगता है कि, बाद में, टिनक्सक्स विकल्प को अनदेखा करता है और इंटेल/विन 32 कंपाइलर को आमंत्रित करता है।

EDIT2: मेकफ़ाइल और स्रोतों में एक छोटे से परिवर्तन के साथ, एमआईपीएस क्रॉस-कंपाइलर बनाता है। हालांकि, चूंकि इमारत क्रॉस-सीपीयू आरटीएल पर जाती है, यह लगभग तुरंत त्रुटियों में होती है।

उत्तर

3

संपादित करें, अंत में: एंड्रॉइड/एमआईपीएसईएल संकलन लक्ष्य के लिए समर्थन एफपीसी ट्रंक में उपलब्ध है। नवीनतम निर्यात करें, क्रॉसकंपेलर बनाएं, कोड दूर करें।


एमआईपीएस आईएसए के लिए समर्थन एफपी स्रोतों में यहां और वहां पाया जा सकता है, यह आधिकारिक तौर पर अभी तक नहीं किया गया है। 2.7 रिलीज की प्रतीक्षा कर रहा है।

इस बीच, ट्रंक में support for compiling to Java bytecode है, यह एफपी विकी में प्रलेखित है। हो सकता है कि मैं इसे एक स्टॉपगैप के रूप में लाभ उठा सकूं ...

संपादित करें: एंड्रॉइड पर सामान्य रूप से जेवीएम पर फ्री पास्कल काम करता है, लेकिन नियमित पास्कल से its rules are somewhat different। अन्यथा JVM में संकलित होने पर सही पास्कल conks बाहर। तो यह विरासत पास्कल कोड के बड़े निकायों को पोर्ट करने के लिए अनुपयुक्त है जो पहले स्थान पर JVM के साथ नहीं लिखा गया था।

संपादित करें: मुझे एमआईपीएस/एंड्रॉइड पर काम करने वाली मेरी एफपीसी परियोजना मिली है, लेकिन मेरी नुस्खा सामान्य खपत के लिए उपयुक्त नहीं है, क्योंकि मेरी परियोजना में पास्कल आरटीएल उपयोग का दायरा बहुत सीमित है। इसमें पास्कल से एमआईपीएस असेंबली (एफपीएससी ट्रंक में उपलब्ध एमआईपीएसईएल/लिनक्स को लक्षित करने) को क्रॉस-कंपाइलिंग शामिल है, फिर एनडीके बिल्ड सिस्टम में जेनरेट किए गए असेंबली स्रोतों को खिलााना, पास्कल आरटीएल के सीमित सबसेट के सी/असेंबली पुनर्मूल्यांकन के साथ प्रदान करना।

पास्कल आरटीएल का पूरा शरीर बड़ा और डरावना है। मेरा समाधान, जिसमें स्क्रैच से सी में पास्कल आरटीएल को पुन: कार्यान्वित करना शामिल है, ठीक है, आम तौर पर लागू होने के विपरीत।

+0

जेवीएम विचार छोटे से बाहर निकलने के लिए उपयोग किया जा सकता है, क्योंकि एंड्रॉइड एक जेवीएम नहीं चलाता है। क्या आप एंड्रॉइड के जावा-टू-दल्विक बाइटकोड कनवर्टर में फ़ीड करने के लिए कोड तैयार कर रहे हैं? या आप एंड्रॉइड (संभव लेकिन असामान्य) के लिए एक तृतीय पक्ष JVM जोड़ रहे हैं? –

+0

नि: शुल्क पास्कल जावा बाइटकोड (जैसे .class फ़ाइलों) में संकलित करने में सक्षम है जिसे एंड्रॉइड बिल्ड सिस्टम को निर्भरता लाइब्रेरी के रूप में खिलाया जा सकता है। विवरण [यहां] (http://wiki.freepascal.org/FPC_JVM)। मेरा ठोकर ब्लॉक [यहां] (http://bugs.freepascal.org/view.php?id=22892)। –

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