का उपयोग SCons मैं आसानी से सेट कर सकते हैं मेरी पथ शामिल है:मैं किस तरह निर्धारित SCons सिस्टम पथ में शामिल
env.Append(CPPPATH=['foo'])
यह झंडा गुजरता
-Ifoo
हालांकि मैं कोशिश कर रहा हूँ जीसीसी के लिए कई चेतावनियों को सक्षम करने के लिए संकलित करने के लिए।
env.Append(CPPFLAGS=['-Werror', '-Wall', '-Wextra'])
जो कुछ बढ़ावा शामिल हैं पर बुरी तरह मर जाता है के साथ विशेष रूप से ... मैं बढ़ावा जोड़कर इसे ठीक कर सकते व्यवस्था करने के लिए भी शामिल है बल्कि जीसीसी व्यवहार करता है के रूप में शामिल पथ प्रणाली अलग ढंग से शामिल की तुलना में पथ शामिल करें।
तो क्या मैं -Ifoo के बजाय जीसीसी के लिए पारित करने के लिए की जरूरत है
-isystem foo
मुझे लगता है मैं CPPFLAGS चर के साथ ऐसा कर सकता है, लेकिन अगर वहाँ SCons में बनाया गया एक बेहतर समाधान था सोच रहा था है।
मेरी अपेक्षा की पुष्टि के लिए धन्यवाद (लेकिन उम्मीद गलत थी) –
अच्छा जवाब लेकिन वास्तव में, मुझे विश्वास है कि यह एक अच्छी बात है कि उन लोगों को निर्भरता श्रृंखला से बाहर रखा गया है क्योंकि वे पूरी बिल्ड प्रक्रिया को धीमा कर देंगे वास्तविक लाभ बूस्ट हेडर बहुत सारे हैं और वे संभवतः बदल नहीं पाएंगे (और जब वे करते हैं, तो आप इसे जानते हैं और सबकुछ साफ करने का फैसला कर सकते हैं)। – ereOn
दरअसल, "केवल पढ़ने के लिए" हेडर को छोड़कर आपके निर्माण को तेज़ करने का एक शानदार तरीका है। एक अच्छा अभ्यास यह सुनिश्चित करना है कि लाइब्रेरी संस्करण इसकी निर्देशिका पथ (यानी/foo/bar/boost/1.38/include) का हिस्सा है। इस तरह, बूस्ट संस्करण संख्या संकलन कमांड लाइनों पर दिखाई देती है। चूंकि स्कैन में इसके हस्ताक्षर में कमांड लाइन शामिल है, इसलिए कोई भी बढ़ावा अपग्रेड एक अलग निर्देशिका में उतरेगा, जिससे किसी भी मौजूदा निर्माण उत्पाद को अमान्य कर दिया जा सकेगा। यह विशेष रूप से बड़ी टीमों के लिए एक निर्माण कैश को और अधिक मजबूत बनाता है। – BenG