टीएल/डॉ: मैं एआरएम (gnueabi) प्लेटफॉर्म के लिए जीसीसी 4.7.0 पार संकलन toolchain (एक रास्पबेरी Pi डिवाइस पर चलने का इरादा) के निर्माण के बारे में अधिक जानकारी कहाँ से मिलेगी?जीसीसी में रास्पबेरी पीआई के लिए क्रॉस-संकलन। कहा से शुरुवात करे?
मुझे अभी एक नया रास्पबेरी पीआई मिला है और मैं इसके लिए प्रोग्रामिंग शुरू करने के लिए बहुत उत्सुक हूं। मैंने जीसीसी टूलचैन स्थापित करने में कामयाब रहा है (मैं आर्क लिनक्स सिस्टम छवि का उपयोग कर रहा हूं) और कुछ बुनियादी कार्यक्रमों को संकलित किया, सभी ठीक काम कर रहे हैं।
मैं भी बूस्ट पुस्तकालयों संकलित करने के लिए क्योंकि मैं अक्सर उन्हें अपनी परियोजनाओं में उपयोग की कोशिश की है और सब कुछ निर्देश (./bootstrap.sh
+ ./b2
) तथ्य यह है कि संकलन दर्दनाक धीमी थी के अलावा का पालन करते हुए ठीक काम करने के लिए लग रहा था। मैंने इसे कुछ घंटों तक छोड़ा लेकिन यह मुश्किल से पहले कुछ स्रोत फ़ाइलों को पीछे छोड़ दिया। रात के लिए दौड़ने के बाद, मैंने पाया कि निर्माण की कमी राम की कमी के कारण निरस्त हो गई है।
तो, मेरा अनुमान है कि रास्प पी को बस बूस्ट जैसे आकार के कुछ संकलन के लिए कम किया गया है। तो, मेरे दिमाग में क्रॉस-संकलन आता है। हालांकि, ऑनलाइन उपलब्ध एआरएम क्रॉस संकलन के बारे में बहुत सारी जानकारी है, लेकिन मुझे यह भ्रमित लगता है। कोई भी कहां से शुरू होता है?
मेरे पास हाल ही में एक जीसीसी संस्करण (4.7.0) है जो मेरे रास्पबेरी पीआई पर उपलब्ध है, इसलिए मैं आदर्श रूप से उसी संस्करण के साथ संकलन करना चाहता हूं। एआरएम के लिए मुझे जीसीसी 4.7.0 टूलचेन कहां मिल सकता है? (मैं 86 CentOS 6.2 पर संकलन किया जाएगा)
संपादित करें:
मैं अनावश्यक GPU स्मृति पुनः आवंटित की जाती है और, एक यूएसबी ड्राइव पर एक 4GB स्वैप विभाजन की स्थापना की है, जबकि निर्माण फ़ाइलों को एक NFS शेयर पर हैं। बूस्ट अब बहुत तेज संकलन कर रहा है, इसलिए यह प्रबंधनीय है। मैं अभी भी जानना चाहूंगा कि मैं अपने x86 पीसी पर क्रॉस संकलन के लिए जीसीसी 4.7 टूलचेन कैसे स्थापित कर सकता हूं, क्योंकि मैं बहुत संकलन करना चाहता हूं और मैं इसे यथासंभव तेज़ी से बनाना चाहता हूं।
संपादित करें 2:
के बाद से जीसीसी 4.7.0 अपेक्षाकृत नया है, वहाँ पहले से बने पार संकलक (i386-> एआरएम) होने के लिए प्रतीत नहीं होता। मुझे शायद खुद को एक बनाना होगा, जो एक गैर-मामूली कार्य लगता है (मैंने कोशिश की और असफल रहा)। क्या किसी को हाल ही के संस्करणों में से एक के लिए उम्मीद है कि जीसीसी क्रॉस-कंपाइलर बनाने के लिए अनुसरण करने के लिए ट्यूटोरियल की जानकारी है?
मैं this great shell script (जो एक ही चाप संकलक के निर्माण के लिए महान काम किया) के साथ की कोशिश की है और मैं सफलतापूर्वक binutils
और जीसीसी के आवश्यक शर्तें का निर्माण किया है, लेकिन फिर जीसीसी का निर्माण कई गूढ़ त्रुटियों के साथ असफल रहने रखा। मैं वास्तव में यहां खो गया हूं, इसलिए मैं आपकी मदद की बहुत सराहना करता हूं। रास्पबेरी Pi पर
जीसीसी के साथ
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,fortran,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu
--disable-libstdcxx-pch --enable-libstdcxx-time
--enable-gnu-unique-object --enable-linker-build-id --with-ppl
--enable-cloog-backend=isl --enable-lto --enable-gold
--enable-ld=default --enable-plugin --with-plugin-ld=ld.gold
--with-linker-hash-style=gnu --disable-multilib --disable-libssp
--disable-build-with-cxx --disable-build-poststage1-with-cxx
--enable-checking=release --host=arm-unknown-linux-gnueabi
--build=arm-unknown-linux-gnueabi
संपादित 3 कॉन्फ़िगर किया गया था:
मैं एआरएम के लिए एक 4.7 जीसीसी toolchain (! Yay) this shell script का उपयोग कर निर्माण करने में कामयाब रहे के रूप में उपयोगकर्ता dwelch ने सुझाव दिया टिप्पणियाँ। मैंने newlib
और libstdc++
को एक गाइड के रूप में this article का उपयोग करके भी बनाया। टूलचेन ठीक काम करता है, लेकिन मैं अपने रास्पबेरी पीआई पर निष्पादन योग्य चलाता हूं, यह Illegal instruction
के साथ विफल रहता है। इसका कारण क्या हो सकता है?
ज़्राम पैकेज को आजमाएं यदि यह पहले से इंस्टॉल नहीं है। यह एक संपीड़ित रैम स्वैप बनाएगा, जो आपको लगता है उससे ज्यादा मदद करता है। (अजीब रूप से पर्याप्त।) एक निश्चित रूप से तेज़ यूएसबी डिवाइस, या तो एक यूएसडी एचडीडी या एक उच्च गुणवत्ता वाली यूएसबी स्टिक जोड़ें और उस पर स्वैप डालें। –
इसके अलावा, आप इस धागे में ग्राफिक्स मेमोरी को अक्षम करने के तरीके को पढ़ सकते हैं ताकि आपको 32 मेगा रैम प्राप्त हो सके: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=5&t=4831&p=65410 –
वाह, धन्यवाद । वास्तव में जीपीयू के लिए आवंटित 128 एमबी था। कोई आश्चर्य नहीं कि सबकुछ इतना सुस्त था। – Tibor