के लिए क्रॉस कंपाइल पर्ल मैं एआरएम आर्किटेक्चर (FriendlyARM Micro2440) के लिए पर्ल दुभाषिया संकलित करने का प्रयास कर रहा हूं। मैं निर्माता द्वारा प्रदत्त ARM-Linux GCC 4.4.3 क्रॉस-कंपाइलर का उपयोग कर रहा हूं। बोर्ड लिनक्स 2.6 चला रहा है।एआरएम
मैं एक मूल "हैलो वर्ल्ड" एप्लिकेशन को सफलतापूर्वक संकलित करने में सक्षम था, और यह लक्ष्य मशीन पर चला गया।
मैंने perl v5.12.3 स्रोत डाउनलोड किया है। मैं उबंटू के लिए पर्ल का सामान्य संकलन करने में सक्षम था। अब मैं एआरएम बोर्ड के लिए एक क्रॉस-संकलन करने का प्रयास कर रहा हूं। मैं स्रोत डाउनलोड में perl-5.12.3/क्रॉस फ़ोल्डर से बाहर काम कर रहा हूं।
make patch
सफल रहा है, लेकिन यह इस
LD_LIBRARY_PATH=/home/reed022/.local/share/Trash/files/perl-5.2.12.3 arm-linux-gcc -o miniperl \
gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o \
miniperlmain.o opmini.o perlmini.o -lnsl -ldl -lm -lcrypt -lutil -lc
LD_LIBRARY_PATH=/home/reed022/.local/share/Trash/files/perl-5.2.12.3 ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
./miniperl: 1: Syntax error: word unexpected (expecting ")")
मुझे लगता है कि उत्पादन की प्रासंगिकता का ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
हिस्सा है के साथ विफल हो जब मैं make perl
चलाते हैं। हालांकि मुझे यकीन नहीं है। मुझे यह भ्रमित लगता है कि क्रॉस-संकलन वातावरण परीक्षण चलाने की कोशिश करेगा, क्योंकि यह एक अलग सिस्टम को लक्षित कर रहा है जिस पर इसे बनाया जा रहा है।
मैं यहां से कहां से जाना चाहता हूं पूरी तरह खो गया हूं। जिन लोगों से मैंने बात की है, उन्हें क्रॉस-कंपाइलिंग प्रोग्राम के साथ ज्यादा अनुभव नहीं हुआ है।
अद्यतन
मैं यह सोच कर कि उबंटू होस्ट मशीन के लिए पर्ल के पिछले संकलन वर्तमान पार संकलन के साथ खिलवाड़ हो सकता है पर्ल स्रोत फ़ोल्डर को हटाने के लिए और फिर से निकालने का निर्णय लिया। अब मुझे एक अलग लेकिन समान त्रुटि मिल रही है।
`sh cflags "optimize='-O2'" generate_uudmap.o` -fexpensive-optimizations -fomit-frame-pointer -O2 -march=armv4 -mtune=strongarm1100 generate_uudmap.c
CCCMD = arm-linux-gcc -DPERL_CORE -c -fexpensive-optimizations -fomit-frame-pointer -O2 -march=armv4 -mtune=strongarm1100 -O2 -Wall
arm-linux-gcc -o generate_uudmap generate_uudmap.o -lnsl -ldl -lm -lcrypt -lutil -lc
./generate_uudmap uudmap.h bitcount.h
./generate_uudmap: 1: Syntax error: word unexpected (expecting ")")
make[1]: *** [bitcount.h] Error 2
make[1]: Leaving directory `/home/reed022/Downloads/perl-5.12.3'
make[1]: Entering directory `/home/reed022/Downloads/perl-5.12.3'
make[1]: *** No rule to make target `more'. Stop.
make[1]: Leaving directory `/home/reed022/Downloads/perl-5.12.3'
make: *** [perl] Error 2
इसे सफलतापूर्वक कभी नहीं किया, लेकिन आप OpenEmbedded प्रोजेक्ट को देखना चाहेंगे। वे एम्बेडेड लिनक्स distros बनाने के लिए एक निर्माण ढांचा प्रदान करते हैं। http://wiki.openembedded.net/index.php/Main_Page – daotoad
मेकफ़ाइल स्पष्ट रूप से आपके (इंटेल?) निर्माण मशीन पर आपके एआरएम बाइनरी चलाने की कोशिश कर रहा है। (मुझे लगता है कि जादू संख्या किसी भी ज्ञात निष्पादन योग्य फ़ाइल प्रकार से मेल नहीं खाती है, इसलिए खोल इसे खोल स्क्रिप्ट के रूप में चलाने की कोशिश करता है और आपको दिखाई देने वाली अजीब त्रुटि देता है)। आपके क्रॉस संकलन सेटअप के साथ कुछ गलत होना चाहिए। – LHMathies