लिनक्स में जीसीसी के लिए डिफ़ॉल्ट शामिल पथ कैसे जोड़ें?


288

मैं $HOME/includeसामान्य निर्देशिकाओं के अलावा फ़ाइलों को शामिल करने के लिए gcc चाहूंगा , लेकिन इसमें कोई एनालॉग नहीं लगता है $LD_LIBRARY_PATH

मुझे पता है कि मैं कंपाइलिंग (या मेकफाइल) में कमांड लाइन में शामिल डायरेक्टरी को जोड़ सकता हूं, लेकिन मैं वास्तव में यहां एक सार्वभौमिक दृष्टिकोण पसंद करूंगा, जैसा कि लाइब्रेरी के मामले में है।


3
यहां GCC 4.8.1 मैनुअल से लिंक किया गया है जहां C_INCLUDE_PATH और CPLUS_INCLUDE_PATH पर्यावरण चर प्रलेखित हैं।
16

जवाबों:


392

सेटिंग C_INCLUDE_PATH(C शीर्ष लेख फ़ाइलों के लिए) या CPLUS_INCLUDE_PATH(C ++ शीर्ष लेख फ़ाइलों के लिए ) आज़माएं ।

जैसा कि Ciro ने उल्लेख किया है, CPATHC और C ++ (और किसी भी अन्य भाषा) दोनों के लिए पथ सेट करेगा।

जीसीसी के प्रलेखन में अधिक जानकारी ।


53

अपने पसंदीदा के साथ gcc के लिए एक उपनाम बनाएं।

alias mygcc='gcc -I /whatever/'

12
मुझे लगता है कि इसके बाद कोई जगह नहीं होनी चाहिए-I
इयूलियस कर्ट

10
अंतरिक्ष को छोड़ना आदत की बात है, ठीक उसी तरह जैसे आप -l<libnam>लिंक करना चाहते हैं बस ध्यान दें कि एक उपनाम बनाना एक बहुत ही खराब समाधान है, वास्तव में आप अपने 'पसंदीदा शामिल' की एक सूची बनाएंगे और उन्हें अपने मेकफाइल में जोड़ें।
h4unt3r

9
"लाइब्रेरी के साथ एक अलग तर्क के रूप में दूसरा विकल्प केवल पॉसिक्स अनुपालन के लिए है और अनुशंसित नहीं है।" GCC मैनुअल के अनुसार।
जोरी

अच्छा विचार नहीं। यह गैर-रचना योग्य है (यदि आप एक और डीआईआर चाहते हैं तो क्या करें? यदि आप कुछ अन्य जीसीसी स्विच चाहते हैं) और विभिन्न स्क्रिप्ट या स्वचालित टूल को भ्रमित कर सकते हैं जो जीसीसी के बारे में धारणा बनाते हैं।
einpoklum

8

एक gcc युक्ति फ़ाइल कार्य कर सकती है, हालाँकि मशीन के सभी उपयोगकर्ता प्रभावित होंगे।

यहाँ देखें


6

सिर्फ एक नोट: CPLUS_INCLUDE_PATHऔर C_INCLUDE_PATHके बराबर नहीं हैं LD_LIBRARY_PATH। (रनटाइम पर डायनेमिक लिंकर) LD_LIBRARY_PATHकार्य करता है, ldजबकि पुस्तकालयों के स्थान के साथ आपके C / C ++ कंपाइलर की सेवा करने वाले पूर्व दो के बराबर है LIBRARY_PATH

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.