2010-10-18 9 views
13

के लिए निर्देशिका को निर्दिष्ट करने के लिए निर्देशिका में शामिल हैं मेरे पास मेरे पुराने कार्यस्थल के साथ मेरे पुराने स्थान पर एक लिनक्स सिस्टम है और कोई रूट पहुंच नहीं है। मैं संकुल संकलित कर रहा हूं जिसे मुझे --prefix=[somewhere in homedir] के साथ स्रोत से चाहिए। मेरी समस्या यह है कि मैं सिर्फ एक विशिष्ट निर्देशिका में हेडर फ़ाइलों को देखने के लिए कॉन्फ़िगर करने के लिए कॉन्फ़िगर करने के बारे में नहीं पता कर सकता। स्रोत सीपीपी है। मैंने g++ से संबंधित पर्यावरण चर के साथ प्रयास किया और झंडे और गुगलिंग की तलाश की लेकिन मुझे कोई सफलता नहीं मिली। क्या कोई इसे हल करने में मेरी सहायता कर सकता है?कॉन्फ़िगरेशन स्क्रिप्ट

उत्तर

15

ऐसा करने का सामान्य तरीका --with-<feature>=<header directory> है।

+0

धन्यवाद। इसने काम कर दिया। – jakab922

+7

यदि यह काम करता है तो हमें यहां लटका नहीं छोड़ें ... –

+0

में क्या जाता है? – Chara

22

आमतौर पर आप CXXFLAGS के अंदर अतिरिक्त कंपाइलर झंडे पास कर सकते हैं। gcc के लिए आप -I/some/dir के साथ निर्देशिकाओं को और अधिक निर्दिष्ट कर सकते हैं, उदा।

$ ./configure CXXFLAGS="-I/some/dir/" 

जहां /some/dir/ आपके शीर्षलेख शामिल हैं।

+4

CXXFLAGS सी ++ कंपाइलर के लिए है, इसलिए सी कंपाइलर के लिए CFLAGS। – thor

3

निर्देशिका शामिल करने के लिए CPPFLAGS का उपयोग करना बेहतर है।

./configure CPPFLAGS="-I/your/whatever/includedir" 
+0

प्रासंगिक होने पर, यह प्रतिक्रिया यह नहीं बताती है कि यह क्यों काम कर सकता है, जहां 'कॉन्फ़िगरेशन' चलाने से पहले पर्यावरण में एक ही निर्देशिका निर्दिष्ट करना विफल हो जाएगा। – eh9

6
CPPFLAGS = C Preprocessor Flags, these flags will be used for C and C++ compilation. 

CFLAGS = C Flags, these flags will be used when compiling C. 

CXXFLAGS = C++ Flags, these flags will be used when compiling C++. 

मैं झंडा एक अतिरिक्त निर्देशिका संकलन के दौरान प्रयोग की जाने वाली शामिल निर्दिष्ट करता है।

आम तौर पर यह जब निर्दिष्ट करने निर्देशिका में शामिल CPPFLAGS उपयोग करने के लिए एक अच्छा विचार है, इस तरह आप जानते हैं कि यह परियोजना कुछ स्रोत है कि सी

बेशक

के रूप में संकलित किया गया है है, भले ही उपयोग किया जाएगा है, वहाँ भी परिस्थिति हो सकता है जहां आप केवल सी या सी ++ द्वारा उपयोग की जाने वाली निर्देशिका शामिल करना चाहते हैं, लेकिन दोनों नहीं। इस मामले में आप स्पष्ट रूप से CFLAGS या CXXFLAGS का उपयोग करके बेहतर सेवा प्रदान करेंगे।

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