मेरे पास एक प्रोजेक्ट (लाइब्रेरी) है जो कोड में कुछ निर्देशिकाओं में विभाजित है। मैं प्रोजेक्ट की रूट निर्देशिका में हेडर फाइलों के लिए g ++ खोज करना चाहता हूं, इसलिए मैं एकाधिक स्रोत फ़ाइलों में एक ही शीर्षलेख फ़ाइलों के लिए पथ शामिल करने से अलग हो सकता हूं।एक विशिष्ट निर्देशिका में हेडर फ़ाइलों के लिए g ++ खोज कैसे करें?
मुख्य रूप से, root/
निर्देशिका उप-निर्देशिका A/
, B/
और C/
, जो सभी के अंदर .hpp
और .cpp
फ़ाइलें है। यदि ए में कुछ स्रोत फ़ाइल file.hpp
शामिल करना चाहती है, जो बी में थी, तो इसे ऐसा करना होगा: #include "../B/file.hpp"
। सी में एक अन्य स्रोत फ़ाइल के लिए वही है, लेकिन अगर ए के पास फाइलों के साथ उप-निर्देशिकाएं थीं जिन्हें file.hpp
की आवश्यकता होती है, तो यह असंगत होगा और अगर मैं फ़ाइलों को स्थानांतरित करने का निर्णय लेता हूं तो त्रुटियों का कारण बनता है (क्योंकि पथ शामिल होगा "../../B/file.hpp"
) ।
इसके अलावा, इसे अन्य परियोजनाओं से भी काम करने की आवश्यकता होगी, जो root/
के बाहर रहते हैं। मुझे पहले से ही पता है कि मेरे सभी हेडर फ़ाइलों को मैन्युअल रूप से एक डिफ़ॉल्ट-खोज निर्देशिका में कॉपी करने का विकल्प है, लेकिन मैं इसे वैसे ही करना चाहता हूं जैसा मैंने वर्णन किया था।
संपादित करें: पुस्तकालय का उपयोग करने वाले सभी कार्यक्रमों को केवल g++ prog.cpp lib.a -o prog
के साथ संकलित करना होगा। इसका मतलब है स्थायी रूप से जी ++ के लिए पथ शामिल करना!
अरे, मैंने बिना किसी महत्वपूर्ण विवरण के प्रश्न पूछा है, कृपया संपादन देखें, धन्यवाद! – corazza
@Bane, जो सबकुछ बदलता है :-)। मैंने अपने उत्तरों को और अधिक विकल्पों को शामिल करने के लिए संपादित किया जिनका उपयोग किया जा सकता है। – Vikas
ऐसा लगता है कि मैं क्या देख रहा हूं। मैं उन्हें वास्तव में कैसे संपादित कर सकता हूं? (एक सीएलआई निर्देश के साथ, यानी, मुझे अपनी लाइब्रेरी के मेकफ़ाइल के इंस्टॉल नियम में जोड़ने की आवश्यकता है।) – corazza