2012-06-17 12 views
5

पार जी के साथ ++ एक संकलन वर्बोज़ मोड में (11.10 Lubuntu) एक Linux मशीन में प्रदर्शन, मैं डिफ़ॉल्ट की सूची देख सकते जबकि शीर्ष लेख निर्देशिका में शामिल हैं:जी ++ डिफ़ॉल्ट शीर्ष लेख सूची में शामिल हैं

#include <...> search starts here: 
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include 
/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/powerpc-linux 
/opt/eldk-4.2/ppc_4xx/usr/include/c++/4.2.2/backward 
/opt/eldk-4.2/usr/../ppc_4xx/usr/include 

बहुत ही निष्पादित एक और Linux मशीन में g ++ बाइनरी (12.10 Lubuntu), मैं कम तत्वों के साथ एक और अलग अलग सूची प्राप्त,:

#include <...> search starts here: 
/opt/eldk-4.2/usr/bin/../lib/gcc/powerpc-linux/4.2.2/include 

और जिसमें elments के कुछ बुरा निर्माण लगते हैं, निम्नलिखित की तरह:

ignoring nonexistent directory "/opt/ppc_4xx/usr/lib/gcc/powerpc-linux/includ../include/c++/4.2.2" 

परिणाम यह है कि पहले सिस्टम पर संकलित कुछ कोड दूसरे पर संकलित नहीं है क्योंकि कुछ शीर्षलेख नहीं मिलते हैं।

ऐसा क्यों हो रहा है? यह सूची कहां से आती है? इसे बनाने के लिए कौन जिम्मेदार है? क्या इसे आसानी से बदलना संभव है?

किसी भी मदद की सराहना की जाती है।

+1

के रूप में यह रन की कोशिश की है 'जी ++ -v -H' और यह आपको एक बहुत बता देंगे ... –

उत्तर

5

आप वातावरण चर सेट करके डिफ़ॉल्ट खोज पथ के लिए निर्देशिका जोड़ सकते हैं:

  • C_INCLUDE_PATH (सी हेडर फाइल के लिए)
  • CPLUS_INCLUDE_PATH (सी ++ हेडर फाइल के लिए)।

वैकल्पिक रूप से, you can create and edit specfile और जहां उसे G ++ उनके लिए दिखता है वहां रखें। आप strace gcc के साथ पथ की जांच कर सकते हैं।

Additional documentation on specfiles on GCC page.

+0

मैं दुर्भाग्य से किसी भी स्थान को नहीं जानते जहां डिफ़ॉल्ट निर्देशिका संग्रहीत की जाती है। वे शायद संकलक में बनाया गया है। –

+0

मुझे संदेह है कि यह कंपाइलर में संग्रहीत है, क्योंकि विभिन्न मशीनों में एक ही बाइनरी को निष्पादित करने के परिणामस्वरूप एक अलग परिणाम – Marda

+1

यह कंपाइलर में बनाया गया है, लेकिन पथ सापेक्ष पथ के रूप में अंतर्निहित हैं ताकि वे बाइनरी कहां से संबंधित हों स्थापित। –

0

मैं सही कुछ ELDK 4.2 का प्रयोग कर समस्या है। यह संभवतः उबंटू 12.04 में परिवर्तित होने वाली किसी चीज़ से जुड़ा हुआ है क्योंकि मेरे पास अपग्रेड से पहले एक ही कंप्यूटर पर कंपाइलर ठीक है।

मेरे समस्या यह है कि

यह होना चाहिए अस्तित्वहीन निर्देशिका अनदेखी "/opt/eldk-4.2/../ppc_82xx/usr/include"/usr

भूल गए हैं करने के लिए है लगता है

/opt/eldk-4.2/usr/../ppc_82xx/usr/include

जो उबंटू 11.10 पर पूरी तरह से काम करता है।

मैं दोनों आईएसओ से ELDK स्थापित करने और ubuntu में एक काम संस्करण से स्थापना को कॉपी 11.10

+1

मुझे यह मिला, http://answerpot.com/showthread.php?3533926-Ubuntu+12.04+and+ELDK+4.1 –

+0

मैंने चश्मा फ़ाइल में लापता पथ जोड़कर मेरी समस्या हल की "। यह एक हैक है, लेकिन। http://www.mingw.org/node/25। यह ईएलडीके 4 ध्यान दिया जाना चाहिए।2 ने मेरी उबंटू छवि पर काम किया जो 11.04 से अपग्रेड किया गया था, लेकिन ताजा स्थापित 12.04 पर नहीं। पथ और लिंक कैसे हल किए जाते हैं इसके साथ कुछ प्रकार की असंगतता है। मेरा अनुमान है कि यदि कोई डायरेक्टॉय समाप्त नहीं होता है/यह कुछ लाइब्रेरी में कहीं अलग परिणाम देगा –

+0

मुझे यकीन नहीं है कि एक हैक है - यहां एक समाधान की आवश्यकता है जो बिल्डिंग पर्यावरण को अपने मेजबान से इन्सुलेट करता है - अन्यथा बनाता है बस दोहराने योग्य नहीं है। आपके टूल्स के लिए एक पर्यावरण विन्यास जो परियोजना के साथ संस्करण नियंत्रित किया जा सकता है एक जरूरी है। वास्तव में, आपके उपकरण को नियंत्रित करने वाला संस्करण भी एक अच्छी योजना है। – marko

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